我试图在LINQ给我的结果集上添加一个索引,我成功地做到了。我不会深入讨论我为什么要做索引,因为主要原因是我所处理的数据具有冗余性,我需要处理它。
没有太多的进入LINQ,但我已经设法通过的问题陈述,我有。现在我有以下的疑问。
1.我是否正确地在记录上放置索引?
1.我需要对齐查询吗?我指的是我在查询中使用的 predicate 序列?
1.它似乎是整洁的查询,那么为什么它仍然给出错误:
无法转换。请以可以转换的形式重写查询,或者通过插入对“AsEnumerable”、“AsAsyncEnumerable”、“ToList”或“ToListAsync”的调用来显式切换到客户端计算。有关详细信息,请参见https://go.microsoft.com/fwlink/?linkid=2101038。
下面是我的疑问:
dbEmployees = await _dbContext.Employees
.AsNoTracking()
.OrderBy(x => x.EmployeeName)
.ThenBy(x => x.EmployeeCode)
.ThenBy(x => x.BadgeNumber)
.ThenBy(x => x.StartDate)
.ThenBy(x => x.SignOnTime)
.Where(x => x.UnitCode == "BU" && x.DepartmentId == 1)
.Select((item, employeeIndex) => new
{
EmployeeIndex = employeeIndex + 1,
item
})
.Where(x => x.EmployeeIndex >= employeeIndexPointer)
.Select(x => x.item)
.Take(10)
.ToListAsync();
欢迎任何帮助或指点。
1条答案
按热度按时间uqcuzwp81#
如果在
IEnumerable<T>
上操作,则需要使用LINQ to Object(而不是LINQ to SQL)请注意
.Where()
语句前面的.AsEnumerable()
,这会将结果集从IQueryable<T>
转换为IEnumerable<T>
在此阅读更多信息:Are Linq to SQL and Linq to Objects queries the same?