我基本上在寻找一种方法来运行实体框架查询,该查询将返回表格中的结果子集以及表格中的记录总数。我想用一个查询来做这件事。我知道我可以进行计数,然后运行查询但看起来它会两次往返数据库。
有没有人有任何想法?
答案 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导航属性。