我有一个请求处理程序,它接受一个条件,添加一些与用户授权相关的其他标准,然后返回与该条件匹配的记录数以及所需的页面。
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查询异步或并行。
答案 0 :(得分:1)
您不能在同一个DbContext
对象上异步运行两个查询,因此唯一的方法是创建两个上下文(每个线程一个)。
此处有更多信息:http://visualstudiomagazine.com/articles/2014/04/01/async-processing.aspx