2010-07-04 11 views
1

J'ai un référentiel IQueryable (c'est la première fois que j'ai essayé) et je n'arrive pas à l'obtenir pour extraire les bonnes données en utilisant Skip(1).Take(1)LINQ TO SQL - Ignorer/Ne pas fonctionner comme prévu

est ici le dépôt

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 

Et voici le service

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 

Le problème est qu'il est le retour PREMIER record dans l'ordre par la clause et non la DEUXIÈME. Est-ce que quelqu'un peut me dire ce que je fais mal ici?

Répondre

2

Êtes-vous sûr que c'est? Pourquoi ne pas séparer les appels et regarder les résultats en mode débogage ...

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

Il s'avère que l'appel Controller n'utilisait pas la méthode qu'il utilisait à l'origine ... oops. –