2011-03-02 43 views
0

我想通過C#代碼在數據庫中檢索我的一個表的最後一條記錄。我不想在Sql server中使用查詢。 在我的代碼中我想檢索5個最後記錄,我該怎麼做?現在它會檢索所有的記錄從C#中檢索5個表中的最後記錄

  var temp = db.Positions.Where(P => P.DeviceID == device.ID); 
      List<Position> tempPositions = FilterPosition(temp.ToList<Position>()); 
      var tt = FilterStops(tempPositions, new TimeSpan(0, 30, 0), 100); 
      List<JsonDevicePositionModel> returnPositions = (

              from p in tt 

              select new 
               JsonDevicePositionModel 

              { 
               DeviceID = p.Position.DeviceID, 
               Latitude = p.Position.Latitude, 
               Longitude = p.Position.Longitude, 
               SerialNumber = p.Position.Device.SerialNumber, 

               Speed = p.Position.Speed, 


              }).ToList(); 

      // } 
      return Json(returnPositions, JsonRequestBehavior.AllowGet); 

     } 

回答

2

如果性能不放心,不只是用枚舉類的擴展方法Take:

var tt = FilterStops(tempPositions, new TimeSpan(0, 30, 0), 100).Take(5); 
+1

不從一開始就回歸?我想他說他想要最後5條記錄。你可能需要扭轉......我希望這不是一個大數據集。 – 2011-03-02 15:35:47

+0

你是對的!或者使用OrderByDescending方法。 – Lloyd 2011-03-02 15:37:23

2

你可以試試...

from p in tt.GetRange(tt.Count - 6, 5) 
0

的其他可能性: 由對在tt.Skyp(tt.Count - 5)。取(5)

+0

如果您想要進入收藏集的末尾,您實際上不必在跳過後執行此操作。 – msarchet 2011-03-02 15:44:58

0
var full = FilterStops(tempPositions, new TimeSpan(0, 30, 0), 100); 
var tt= full.Skip(full.Count - 5); 
相關問題