2013-03-17 62 views
0

我有多個「父」實體,每個實體都有一個導航子集。如何在EF中將其父實體的子集合聯合起來?

對於給定的父母子集,是否有創建所有孩子的IEnumerable的整潔有效的方法? (即不重複)。

我可以通過父母和聯盟的孩子,但這似乎非常無益。

from p from parents 
select p.Children 

返回重複項。

class Parent 
{ 
    public List<Child> Children { get; set; } 
} 

class Child 
{ 
    public string Name { get; set; } 
} 

回答

0
var query = (from p in parents 
      from c in p.Children 
      select c) 
      .Distinct(); 
+0

DOH!所以schimples! – BlueChippy 2013-03-17 10:51:06

+0

也許你仍然需要創建一個實現IEqualityComparer的自定義比較器類,Distinct真的過濾了實體。 – Elisabeth 2013-03-17 15:54:19

1

或用方法的語法:

var children = parents.SelectMany(p => p.Children) 
         .Distinct(); 
相關問題