LINQ to Entities无法识别方法ElementAt(i);

我正在使用方法elementat(Int32)来获取查询结果的特定元素。

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

LINQ to Entities无法识别方法’TimeEntModel.TDP_MissioniDestinazioni ElementAt [TDP_MissioniDestinazioni]
(System.Linq.IQueryable`1 [TimeEntModel.TDP_MissioniDestinazioni],Int32)’方法,并且此方法无法转换为商店表达式。

为什么我会收到此错误,我该如何解决?

你是否乐于获取所有“早期”结果? 如果是这样,要么调用ToList()来缓存它们,要么调用AsEnumerable()来在每次调用时获取它们,而AsEnumerable只是强制编译器调用Enumerable.ElementAt而不是Queryable.ElementAt

可能有更好的方法(例如使用Take或Skip) – 你能提供更多关于更大图片的信息吗?

你可以简单地混合SkipFirst来做到这一点:

 mds.Skip(i).First()