2009-04-05 8 views
0

Je suis en train de faire la LINQ suivante 2 méthode d'extension sql:Cette IQueryable <T> méthode d'extension n'a pas de traduction pris en charge pour SQL :(

public static PagedList<T> ToPagedListOrNull<T>(this IQueryable<T> value, 
               int index, 
               int pageSize) 
    { 
     return value.Count() == 0 
     ? null 
     : (value is PagedList<T> ? value as PagedList<T> : 
            new PagedList<T>(value, index, pageSize)); 
    } 

Je continue à obtenir l'erreur suivante:

Method 'Boolean Contains(System.String)' has no supported translation to SQL.

Je pense qu'il est erroring sur le peu value.Count() == 0 .. je pense.

quelqu'un peut-il me dire pourquoi est-ce?

Répondre

1

Votre requête est erronée, en d'autres termes, en 'valeur'. Essayez le test séparément pour vous assurer que cela fonctionne. :)

+0

Désolé, je ne comprends pas :(Dites-vous que je dois d'abord tester l'objet 'value'? –

+0

Ecrivez un test unitaire et testez value.Count() == 0. Je dis qu'il y a probablement un problème avec la requête, et pas la méthode d'extension, ou son utilisation – leppie

+0

+1 @Pure leppie a raison, il y a clairement un problème avec la requête linq elle-même. appel à Count(). – eglasius

Questions connexes