我正在使用方法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)'方法,并且此方法无法转换为商店 表达
为什么我会收到此错误以及如何解决?
答案 0 :(得分:22)
您是否乐意获取所有“早期”结果?如果是这样,请调用ToList()
来缓存它们,或者AsEnumerable()
在每次调用时获取它们,AsEnumerable
只是强制编译器调用Enumerable.ElementAt
而不是Queryable.ElementAt
。
虽然可能有更好的方法(例如使用Take或Skip) - 你能提供更多有关大局的信息吗?
答案 1 :(得分:21)
您可以简单地混合使用Skip
和First
来实现这一目标:
mds.Skip(i).First()