EF每次加入儿童时都会加入表格

问题描述:

我已阅读了有关如何在EF内核中包含所有属性的一些主题。 我有这样的事情:EF每次加入儿童时都会加入表格

_dbcontext.Transaction 
.Include(x => x.Enterprise).ThenInclude(x => x.Manager) 
.Include(x => x.Enterprise).ThenInclude(x=> x.Address) 
.Include(x => x.Enterprise).ThenInclude(x=> x.Example) 
... 

每次包括企业单位,的EntityFramework创建一个新的左联接行。导致这样的事情:

SELECT TOP(1) x.Id, x.OtherColumnNames... 
FROM Transaction as x 
LEFT JOIN Enterprise AS e1 on x.EnterpriseId = e1.Id 
LEFT JOIN Enterprise AS e2 on x.EnterpriseId = e2.Id 
LEFT JOIN Manager AS m1 on e2.ManagerId = m1.Id 
LEFT JOIN Enterprise AS e3 on x.EnterpriseId = e3.Id 
LEFT JOIN Address AS a1 on e3.AddressId= a1.Id 
LEFT JOIN Enterprise AS e4 on x.EnterpriseId = e4.Id 
LEFT JOIN Example AS e1 on e4.ExampleId= e1.Id 
... 

上我怎样才能使EF只剩下加入我的企业表一旦有什么建议?因为这不是完成数据库调用的好方法,而且会降低整个查询速度。

JOIN重复是一个已知的EF核心问题。不幸的是,它在EF Core 1.1中没有修复。根据this thread,问题被分配到2.0.0里程碑,没有任何预计发布日期。