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

时间:2010-02-26 14:16:31

标签: c# linq entity-framework entity

我正在使用方法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)'方法,并且此方法无法转换为商店   表达

为什么我会收到此错误以及如何解决?

2 个答案:

答案 0 :(得分:22)

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

虽然可能有更好的方法(例如使用Take或Skip) - 你能提供更多有关大局的信息吗?

答案 1 :(得分:21)

您可以简单地混合使用SkipFirst来实现这一目标:

mds.Skip(i).First()