避免使用EF Core将父实体附加到子实体上

时间:2020-02-15 21:00:54

标签: c# entity-framework-core

我得到了此层次结构表设置。Company引用了Postal,而Postal引用了Area。我正在使用EF Core。

class Company { CompanyId, .., PostalId, Postal }
class Postal { PostalId, .., Company }
class Area { AreaId, .., Postal }

我的问题是,公司实体像循环引用一样被添加到每个邮政实体中。

Company
 -Postal
  -Company
  | -Postal
  |  -Company
  |  | -Postal
  |  |  -Company
  |  |  -Area
  |  -Area
  -Area

也许这是故意的,但它会产生大量数据开销。 有没有一种方法可以防止子实体引用父实体。

查询实体时,我使用如下代码:

db.Companies.Include(p => p.Postal).ThenInclude(a => a.Area)

1 个答案:

答案 0 :(得分:0)

我得出的结论是,不可能避免这些圆形实体的附着。这就是实体框架目前的工作方式。 由于此问题产生的输出数据开销,我选择了.Select(new)解决方案。在这里,我可以决定要冒出哪些属性,并避免那些不行。该解决方案还具有性能改进。我做了很多工作,但效果很好。