Избегайте прикрепления родительской сущности к дочерней сущности с помощью EF Core - PullRequest
0 голосов
/ 16 февраля 2020

Я получил эту настройку иерархической таблицы. У компании есть ссылка на Почту, а у почты есть ссылка на Площадь. Я использую EF Core.

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

Моя проблема заключается в том, что сущность Company добавляется к каждому почтовому объекту как круговая ссылка.

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

Возможно, такое поведение предназначено, но оно генерирует много служебных данных. Есть ли способ запретить дочерней сущности ссылаться на родительские сущности.

При запросе сущностей я использую такой код:

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

1 Ответ

0 голосов
/ 23 февраля 2020

Я пришел к выводу, что невозможно избежать привязанности этих круговых сущностей. Это просто, как Entity Framework работает в данный момент. Из-за накладных расходов на выходные данные, создаваемых этой проблемой, я выбрал решение .Select (новое). Здесь я могу решить, какие свойства всплывать и избегать их. Это решение также имеет улучшение производительности. Я немного больше работаю, но результат хороший.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...