假设我们有名为A,B,C的表。 C衍生自B和B衍生自A. 因此,如果我想获得C表,OfType(C)将带来预期的结果。但如果我写了OfType(B),结果将包括表C的条目。
我如何才能获得B的结果?是否有更好的实体框架解决方案?
答案 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));