我正在使用 EF5 Code First 并进行如下查询:
var query = DbSet.Include(ent => ent.Websites)
.Include(ent => ent.Addresses)
.Include(ent => ent.IndustryType)
.Include(ent => ent.Factors)
.Include(ent => ent.Factors.Select(fact => fact.Objectives))
.Include(ent => ent.DmpNodes)
.Include(ent => ent.DmpNodes.Select(node => node.DmpNodeConnections));
如果我使用超过 4 个包含,则查询执行速度非常慢。我已经知道为什么会这样了。
我可以省略例如 DmpNodes 包含并使用延迟加载加载该导航属性,但这将导致数百个查询。
我正在寻找一种方法来拆分此查询,以便我可以首先加载带有地址、IndustryType 和Factors 的实体。并通过第二个查询用其余的填充这些实体。
这是可能的还是有其他好的解决方案?