我对 Entity Framework 有这个查询:
_context.Onlines
.Where(x => x.Date >= startDate.Date && x.Date <= endDate.Date && x.User.Id == userId)
.OrderByDescending(x => x.Date)
.Skip((int)size * (page - 1))
.Take((int)size)
.ToList();
如您所见,我正在使用“Skip”和“Take”进行分页搜索,并且我需要享受此查询来计算此查询的总结果(而不仅仅是分页的部分计数),并且返回结果,所有内容都在同一个数据库请求中。
我需要它来计算 View 中的分页。
最佳答案
你可以这样做:
var query = _context.Onlines
.Where(x => x.Date >= startDate.Date && x.Date <= endDate.Date && x.User.Id == userId);
// getting just count
int totalCount = query.Count();
// and then getting items itself
var items = query
.OrderByDescending(x => x.Date)
.Skip((int)size * (page - 1))
.Take((int)size)
.ToList();
它将根据原始条件生成两个 SQL 查询。第一个用于计数,第二个用于项目。
关于asp.net-mvc - 如何使用 Entity Framework 返回查询的部分结果和总计数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29569384/