2010-11-03 99 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