运行多个查询或使用实体框架返回多个值

时间:2010-03-07 04:48:38

标签: entity-framework

我基本上在寻找一种方法来运行实体框架查询,该查询将返回表格中的结果子集以及表格中的记录总数。我想用一个查询来做这件事。我知道我可以进行计数,然后运行查询但看起来它会两次往返数据库。

有没有人有任何想法?

1 个答案:

答案 0 :(得分:1)

你可以这样做:

var list = context.UserSet.Where(u => u.IsSystemAdmin == 1).Select(u => new {User = u, Count = context.UserSet.Count()}).ToList();

将IsSystemAdmin设置为1的用户和整个表中的用户数加上。

但这是一个愚蠢的解决方案。这是两个单独的查询,应该独立查询。如果表中没有IsSystemAdmin的用户,您也不会计算。它也不会更快。坚持两个问题。

往返不错。在许多情况下,最好调用两个查询,特别是1-n关系。使用Include进行1-n关系会产生可怕的SQL,特别是当您多次执行此操作时。最好不要使用Include拨打电话并分别加载1-n导航属性。