2010-07-04 36 views
1

我有一個IQueryable存儲庫(承認這是我第一次嘗試這個),我似乎無法得到它使用Skip(1).Take(1)LINQ TO SQL - 跳過/不按預期工作

這裏的倉庫

Public Function GetActivity() As IQueryable(Of ActivityLog) Implements IActivityLogRepository.GetActivity 
     Dim activity = (From a In dc.ActivityLogs 
         Order By a.ActivityDate Descending 
         Select a).AsQueryable 
     Return activity 
    End Function 

而這裏的服務

Public Function GetUsersLastActivity(ByVal UserID As Integer) As ActivityLog Implements IActivityLogService.GetUsersLastActivity 
     Return _ActivityLogRepository.GetActivity().Where(Function(a) a.UserID = UserID).Skip(1).Take(1) 
    End Function 

的問題是,它返回的FIRST記錄在ORDER BY子句,而不是第二

任何人都可以告訴我我在做什麼錯嗎?

回答

2

你確定它是?你爲什麼不分開的電話,並期待在調試模式下的結果...

var list = _ActivityLogRepository.GetActivity().Where(Function(a) a.UserID = UserID); 
var skipped = list.Skip(1); 
var taken = skipped.Take(1); 
return taken; 
+0

原來,控制器調用沒有使用它最初使用的方法......哎呀。 – 2010-07-04 03:34:48