Sha*_*aby 2 c# linq ienumerable iqueryable
我有以下内容并希望实现分页,但这样做时出现错误。仅当我从列表(或 IEnumerable)创建 IQueryable 时,当我直接对从 LINQ 作为 IQueryable 返回的查询结果执行分页时,我不会收到此错误
System.InvalidOperationException:源 IQueryable 未实现 IDbAsyncEnumerable。只有实现 IDbAsyncEnumerable 的源才能用于实体框架异步操作。有关更多详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkId=287068
List<WeeklyBilling> wbs = new List<WeeklyBilling>();
foreach (Trucks t in trucks)
{
WeeklyBilling wb = new WeeklyBilling();
wb.Customer = t.Customer;
wbs.Add(wb);
}
var wbitems = await wbs.AsQueryable<WeeklyBilling>()
.OrderBy(input.Sorting)
.PageBy(input)
.ToListAsync();
Run Code Online (Sandbox Code Playgroud)
参考官方文档。
\n\n\n由于实体框架查询使用 LINQ,因此扩展方法是在 IQueryable 和 IEnumerable 上定义的。但是,因为\n它们仅设计为与实体框架一起使用,\ n如果您尝试在\n不是实体框架查询的 LINQ 查询上使用它们, \n您可能会收到以下错误。
\n
您还可以用Skip 和 Take 扩展方法或其他解决方案替换 PageBy 。
\nvar wbitems = wbs.OrderBy(input.Sorting)\n .Skip(numberOfObjectsPerPage * pageNumber)\n .Take(numberOfObjectsPerPage)\n .ToList();\nRun Code Online (Sandbox Code Playgroud)\n