在实体框架上导出2次

时间:2010-07-12 08:25:57

标签: .net entity-framework inheritance

假设我们有名为A,B,C的表。 C衍生自B和B衍生自A.  因此,如果我想获得C表,OfType(C)将带来预期的结果。但如果我写了OfType(B),结果将包括表C的条目。

我如何才能获得B的结果?是否有更好的实体框架解决方案?

2 个答案:

答案 0 :(得分:2)

这可能是一种更好/更快/更性感的方式,但你可以随时使用LINQ:

var results = yourCollectionOfBsAndCs.Where(o => !(o is C));

答案 1 :(得分:0)

如果我们尝试排除继承的类,那么我们必须编写所有这些类,如果将来会有另一个继承的类,我们应该更新我们的代码。所以代替它们,这个代码将是更好的解决方案。

//collection include classes A and inherited classes from A.
collection.Where(o => o.GetType() == typeof(A));