asp.net-mvc - 如何使用 Entity Framework 返回查询的部分结果和总计数?

标签 asp.net-mvc linq entity-framework

我对 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/

相关文章:

.net - ActionFilterAttribute 不重定向

c# - "Logging out"用户关闭浏览器事件

linq - 如何从 IQueryable 对象检索订购信息?

c# - 按字段排序列表,然后随机排序

entity-framework - Entity Framework 中存储过程的映射是全有还是全无? (功能映射)

asp.net-mvc - 渲染 Action 渲染部分

asp.net-mvc - IIS 7.5 提示输入用户名和密码

linq - 如果我从我的服务层公开 IQueryable,如果我需要从多个服务中获取信息,数据库调用会不会更少?

c# - 将遗留专有 Web 应用程序重写为 MVC3/Entity-Code-First

entity-framework - ADO.NET Entity Framework 数据库架构更新可能吗?