LINQ-从select计数,并使用join,而不使用group by
Linq对我来说是全新的,所以如果这真的很愚蠢,我道歉 我正在尝试使用where子句从多表联接中获取计数,而不使用group by。我看到过分组的例子,如果需要的话,我会求助于它,但我想知道是否有办法避免它。是sql我的查询看起来像这样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
选择计数(*)
从计划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语句。