LINQ TO SQL - Skip / Take не работает должным образом - PullRequest
2 голосов
/ 04 июля 2010

У меня есть IQueryable репозиторий (по общему признанию, это - первый раз, когда я попробовал это), и я не могу заставить его извлекать правильные данные, используя Skip(1).Take(1)

Вот хранилище

    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, а не SECOND .

Может кто-нибудь сказать мне, что я здесь не так делаю?

1 Ответ

2 голосов
/ 04 июля 2010

Вы уверены, что это так? Почему бы вам не разделить вызовы и посмотреть результаты в режиме отладки ...

var list = _ActivityLogRepository.GetActivity().Where(Function(a) a.UserID = UserID);
var skipped = list.Skip(1);
var taken = skipped.Take(1);
return taken;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...