我有以下内容并希望实现分页,但这样做会出错。当我直接对从LINQ作为IQueryable返回的查询结果执行分页时,我没有收到此错误,只有当我从List(或IEnumerable)创建IQueryable时
System.InvalidOperationException:源IQueryable没有 实现IDbAsyncEnumerable。只有实施的来源 IDbAsyncEnumerable可用于Entity Framework异步 操作。有关详细信息,请参阅 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();
答案 0 :(得分:3)
请参阅official docs。
因为Entity Framework查询使用了LINQ,扩展名 方法在IQueryable和IEnumerable上定义。但是,因为 它们仅用于与实体框架一起使用 如果您尝试在LINQ查询上使用它们,则会收到以下错误 这不是实体框架查询。
您还可以使用Skip and Take extension methods or other solutions替换PageBy。
var wbitems = wbs.OrderBy(input.Sorting)
.Skip(numberOfObjectsPerPage * pageNumber)
.Take(numberOfObjectsPerPage)
.ToList().