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

c# entity entity-framework linq

Question

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?

Réponse acceptée

Êtes-vous heureux de récupérer tous les résultats "antérieurs"? Dans ce 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?


Réponse populaire

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

mds.Skip(i).First()


Related

Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow