我有一个到多个与外键相关的表,我想知道如何在实体框架LINQ查询中创建以下SQL Server查询以仅查找具有子记录的父记录?在LINQ中查找带有子项的父记录
SELECT p.ParentId ,p.ParentName
FROM Parent p JOIN Child c on p.ParentId = c.ParentId
GROUP BY p.ParentId, p.ParentName
HAVING COUNT(c.ParentId) > 0
我有一个到多个与外键相关的表,我想知道如何在实体框架LINQ查询中创建以下SQL Server查询以仅查找具有子记录的父记录?在LINQ中查找带有子项的父记录
SELECT p.ParentId ,p.ParentName
FROM Parent p JOIN Child c on p.ParentId = c.ParentId
GROUP BY p.ParentId, p.ParentName
HAVING COUNT(c.ParentId) > 0
内连接已经限制了你的结果集,以其中两个父母和孩子都存在行时,所以像下面应该工作:
var parentsWithChildren = (
from parent in Parent
\t join child in Child on parent.ParentId equals child.ParentId
\t select new { parent.ParentId, parent.ParentName }).Distinct();
@Downvoter:请考虑添加评论。 – 2014-10-28 08:49:14
谢谢,这比我想象的要干净。 – 2014-10-28 17:45:10
请添加样本输入和输出数据。 – 2014-10-28 08:34:53
你能分享你的EF数据模型吗? – 2014-10-28 08:52:40