LINQ to Entities ne reconnaît pas la méthode ElementAt (i);

J’utilise la méthode elementat(Int32) pour obtenir un élément spécifique du résultat d’une requête.

 var mds = db.TDP_MissioniDestinazioni.Where(p => p.MissioneID == missioneRow.MissioneID); destinazioneRow = mds.ElementAt(i); 

LINQ to Entities ne reconnaît pas la méthode ‘TimeEntModel.TDP_MissioniDestinazioni ElementAt [TDP_MissioniDestinazioni]
(System.Linq.IQueryable`1 [TimeEntModel.TDP_MissioniDestinazioni], Int32) ‘et cette méthode ne peut pas être traduite en une expression de magasin.

Pourquoi ai-je cette erreur et comment puis-je la réparer?

Êtes-vous heureux de récupérer tous les résultats “précédents”? Si tel est le cas, appelez ToList() pour les mettre en cache ou AsEnumerable() pour les récupérer à chaque appel, AsEnumerable étant simplement un moyen de forcer le compilateur à appeler Enumerable.ElementAt au lieu de Queryable.ElementAt .

Il existe peut-être un meilleur moyen (par exemple, en prenant Take ou Skip) – pourriez-vous donner plus d’informations sur l’ensemble?

Vous pouvez simplement mélanger Skip et First pour faire l’affaire:

 mds.Skip(i).First()