考虑以下情况:
我有另外两个继承的基类。例如,我们将有:
class Base
{
}
class DerivedA : Base
{
}
class DerivedB : Base
{
}
当我使用类似代码请求基本实体时
context.Base.Where(q => q.Id == id).First();
实体框架为每个派生实体生成一整套连接,导致查询性能低于可接受的水平。我想要的是仅加载基本实体而不将其加入派生实体。
我在这里找到的唯一解决方案http://blogs.msdn.com/b/alexj/archive/2009/09/17/tip-35-how-to-write-oftypeonly-tentity.aspx。但这对我不起作用。EF 仍然会生成大量查询。
编写查询,例如:
context.Base.Where(q => !(q is DerivedA) && !(q is DerivedB)).First();
由于派生类型的数量不断增加,也不适合我。
除了我提到的之外,还有其他可能的解决方案吗?