我有一個到多個與外鍵相關的表,我想知道如何在實體框架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