Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
LINQ-从select计数,并使用join,而不使用group by_Linq - Fatal编程技术网

LINQ-从select计数,并使用join,而不使用group by

LINQ-从select计数,并使用join,而不使用group by,linq,Linq,Linq对我来说是全新的,所以如果这真的很愚蠢,我道歉 我正在尝试使用where子句从多表联接中获取计数,而不使用group by。我看到过分组的例子,如果需要的话,我会求助于它,但我想知道是否有办法避免它。是sql我的查询看起来像这样 选择计数(*) 从计划p 加入组织 在p.org\u id=o.org\u id上 并且o.deleted为空 加入orgdata od 在od.org\u id=o.org\u id上 和od.active=1 加入orgsys os 在os.sys\u id

Linq对我来说是全新的,所以如果这真的很愚蠢,我道歉

我正在尝试使用where子句从多表联接中获取计数,而不使用group by。我看到过分组的例子,如果需要的话,我会求助于它,但我想知道是否有办法避免它。是sql我的查询看起来像这样

选择计数(*)
从计划p
加入组织
在p.org\u id=o.org\u id上
并且o.deleted为空
加入orgdata od
在od.org\u id=o.org\u id上
和od.active=1
加入orgsys os
在os.sys\u id=od.sys\u id上
并且os.deleted为空
其中p.deleted为NULL
和os.name不在('xxxx'、'yyyy'、'zzzz'中)

获取此信息的最佳方法是什么?

您只需调用
Count()
。你只是在计算结果的数量。比如:

var names = new[] { "xxxx", "yyyy", "zzzz" };
var query = from plan in db.Plans
            where plan.Deleted == null
            join organization in db.Organizations
              on plan.OrganizationId equals organization.OrganizationId
            where organization.Deleted == null
            join orgData in db.OrganizationData
              on organization.OrganizationId equals orgData.OrganizationId
            where orgData.Active == 1
            join os on db.OrganizationSystems
              on orgData.SystemId equals os.SystemId
            where os.Deleted == null &&
                  !names.Contains(os.Name)
            select 1; // It doesn't matter what you select here
 var count = query.Count();
林克托?(实体/sql)。你有什么导航属性?在linq中可能不需要join语句。