我有一个非常简单的场景。
代码优先、EF5、默认模型约定
我的 Parent 类有一个 Child 的集合,它们都派生自一个抽象的 Child 类。假设我有 ConcreteChild1 和 ConcreteChild2。
如果我尝试仅检索 ConcreteChild1,parent.Children.OfType<ConcreteChild1>()
则使用结果将是 ConcreteChild1 的列表,如承诺的那样。不幸的是,检查发出的 SQL 显示所有子项实际上都是从数据库中检索到的,因为 SQL 问题是“在(每个子类型)中的鉴别器”而不是“在('ConcreteChild1')中的鉴别器”,正如我所期望的那样。
我该怎么做才能只检索匹配类型的行?
谢谢!