我使用方法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)”方法,并且此方法无法转换为存储表达式。
为什么会出现此错误?如何修复?
2条答案
按热度按时间tkclm6bt1#
您可以简单地混合
Skip
和First
来实现此目的:jfgube3f2#
如果是的话,要么调用
ToList()
来缓存它们,要么每次调用都调用AsEnumerable()
来获取它们,AsEnumerable
只是强制编译器调用Enumerable.ElementAt
而不是Queryable.ElementAt
的一种方法。也许还有更好的方法(例如,使用Take或Skip)--您能否给予更多有关全局的信息?