实体框架同时计数和列出

时间:2014-12-25 12:39:29

标签: entity-framework

我有一个请求处理程序,它接受一个条件,添加一些与用户授权相关的其他标准,然后返回与该条件匹配的记录数以及所需的页面。

    public PageResult GetPage<T>(Expression<Func<T, bool>> filter = null, int start, int count)
    {
         var query = db.Set<T>();
         //apply some criterias, sorting, etc to criteria
                    recordCount = query.Count();
                    if (start != 0)
                        query = query.Skip(start);
                    if (count != 0)
                        query = query.Take(count);
                    var data = query.ToList();
         return new PageResult {rowCount = recordCount, data = data};
    }

我使用的是EF版本6,有一种简单的方法可以运行Count和Top x查询异步或并行。

1 个答案:

答案 0 :(得分:1)

您不能在同一个DbContext对象上异步运行两个查询,因此唯一的方法是创建两个上下文(每个线程一个)。

此处有更多信息:http://visualstudiomagazine.com/articles/2014/04/01/async-processing.aspx