2012-04-26 83 views
0

我有這樣的關係:繼承和導航性能

class FirstParent { 
    public SecondParent SecondRecord { get; set; } 
} 

class SecondParent { 
    public IEnumerable<FirstParent> FirstRecords { get; set; } 
} 

class FirstChild1 : FirstParent { 
    public String StrInFirstChild1{ get; set; } 
} 

class SecondChild1 : SecondParent { 
    public String StrInSecondChild1{ get; set; } 
} 

class FirstChild2 : FirstParent { 
    public String StrInFirstChild2{ get; set; } 
} 

class SecondChild2 : SecondParent { 
    public String StrInSecondChild2{ get; set; } 
} 

相關類FirstChild1記錄是類型SecondChild1的。 class FirstChild2的相關記錄屬於SecondChild2類型。

當我在寫結果

var record = from ch in context.FirstParent.OfType<FirstChild1>() select ch.SecondRecord; 

我也有SecondParent對象。 發生了什麼?如何加載SecondChild1對象?

+1

我不覺得有什麼問題。您要求FirstParent實體集合中FirstChild1類型的項目(我假設這是一個子集合)。然後在每個訪問SecondParent類型的導航屬性SecondRecord上。所以我希望查詢只返回SecondParent類型的實例。也許如果你描述你想要的查詢的意圖,它會更容易幫助。 – 2012-04-27 10:50:01

回答

0

我找到了一個解決方案。我從所有四個表中加載記錄,並加入以收集匿名對象所需的信息。