2010-11-03 23 views
12

我們假設我有一個父實體「公司」和少數從公司繼承的子實體。假設孩子被命名爲「RedFirm」,「GreenFirm」和「BlueFirm」,如果我只想檢索RedFirm和GreenFirm實例,那麼詢問公司收集的正確方法是什麼?實體框架OfType()

我知道我可以做context.Firms.OfType(RedFirm),但只返回RedFirm實例。無論如何要將類型集合傳遞給OfType或類似的東西?我想這可以通過工會來完成,但我會認爲這樣效率會降低。

回答

20
context.Firms.Where(x => x is RedFirm || x is GreenFirm); 
7

你可以這樣做:

context.Firms.Where(item => (!(item is BlueFirm))); 
1
context.Firm.OfType<RedFirm>()./Rest of the query/ 

這是通向用戶OfType