Con LINQ 2 SQL y usando Take, es realmente sencillo obtener los últimos o los primeros registros de una Tabla, simplemente tenemos que ordenarla como nos interese con el order by y usar el método Take para indicar cuantos registros queremos.
Aquí dejo un ejemplo para coger los últimos registros de una tabla.
public List<object> GetLastRecords(int NoOfRecords) { var records = (from r in DataClassesDataContext.Table orderby r.Pk descending select r).Take(NoOfRecords); List<object> Result = new List<object>(); foreach (Record record in records) { Result.Add(records); } return Result; }


