我有一个带有几个继承类的模型。我有一个 4 级层次结构:
--First level abstrac class A
--Second level abstrac class AA
--Third level:
*abstract class AAA
*abstract class AAB
*abstract class AAC
*class AAD
*class AAE
*abstract class AAF
*class AAG
*class AAH
*abstract class AAI
--Fourth level:
*class AAA1
*class AAA2
*class AAA3
*class AAB1
*class AAB2
*class AAB3
*class AAC1
*class AAC2
...
*class AAF1
*class AAF2
*class AAF3
*class AAF4
*class AAF5
这只是层次结构之一。至少还有 3 个,它们不太复杂。它们之间有几种关系,几乎所有的类都有7个以上的属性。
现在,我使用每个类型的表,但是当我执行简单的 LINQ 查询时:
using (Logic.Context dc = new Logic.Context())
{
var prod = dc.AA.FirstOrDefault();
}
AA 包含所有子类。当数据库为空时,完成这个简单的测试大约需要 25 秒。使用四级类执行相同的 LINQ 查询只需 2 秒。
我试图迁移到每个层次结构的表,默认情况下,数据库生成良好,带有一个列鉴别器,但相同的测试需要永远...... LINQ 查询永远不会执行,甚至没有完成。所有表格都会发生这种情况。
有什么建议吗?