LINQ to entities ne reconnaît pas la méthode " du Système.Linq.IQueryable`

Je veux exécuter ce LINQ simple code pour avoir de numéro d'enregistrement dans LINQ, mais le résultat est en dessous d'erreur

var model = _db2.Persons.Select(
    (x, index) => new 
    {
        rn = index + 1,
        col1 = x.Id
    }).ToList();

Erreur:

LINQ to entities ne reconnaît pas la méthode
'Système.Linq.IQueryable1[<>f__AnonymousType22
[Système.Int32,Système.Int32]], Sélectionnez[Personne,<>f__AnonymousType22](System.Linq.IQueryable1
[MvcApplication27.Modèles.Personne], Système.Linq.Les Expressions.Expression1[System.Func3
[MvcApplication27.Modèles.Personne,D'Un Système.Int32,<>f__AnonymousType2`2
[Système.Int32,Système.Int32]]]) " la méthode, et cette méthode ne peut pas être traduit dans un magasin
expression.

ressemble Persons n'est pas IQueryable, essayez d'utiliser Cast ou OfType (bien sûr, si elles sont présentes).
Non, c'est parce que de l'index pour trouver le nombre record. C'est le Premier Code et je n'ai aucun problème lorsque je supprime indice lambda!
Comme une note de votre titre System.Linq.IQueryable est le type de retour, pas le nom de la méthode. Les trucs que vous voyez dans les crochets ([<>f__AnonymousType22 [System.Int32,System.Int32]]) est le genre de chose qui serait dans le <int, f__AnonymousType22<>> si vous tapez. La fonction réelle est après cette section Select[Person,<>f_AnonymousType22](...).

OriginalL'auteur ehsan | 2013-09-13