LINQ to Entities无法识别ElementAt方法

zzlelutf  于 2022-12-06  发布在  其他
关注(0)|答案(2)|浏览(152)

我使用方法Queryable.ElementAt(Int32)来获取查询结果的特定元素。

IQueryable<MyEntity> entities = db.MyEntities.Where(p => p.ForeignKey == id);

MyEntity entity = entities.ElementAt(i);

但我得到以下错误:
LINQ to Entities无法识别“MyEntity ElementAt[MyEntity](System.Linq.IQueryable '1[MyEntity],Int32)”方法,并且此方法无法转换为存储表达式。
为什么会出现此错误?如何修复?

tkclm6bt

tkclm6bt1#

您可以简单地混合SkipFirst来实现此目的:

mds.Skip(i).First()
jfgube3f

jfgube3f2#

如果是的话,要么调用ToList()来缓存它们,要么每次调用都调用AsEnumerable()来获取它们,AsEnumerable只是强制编译器调用Enumerable.ElementAt而不是Queryable.ElementAt的一种方法。
也许还有更好的方法(例如,使用Take或Skip)--您能否给予更多有关全局的信息?

相关问题