Как Entity Framework моделирует данные из соединительной таблицы? - PullRequest
0 голосов
/ 09 июля 2011

Допустим, у меня есть отношение «многие ко многим» между таблицами Customers и Trucks. К ним присоединяется таблица CustomersTrucks.

Теперь я хотел бы добавить столбец к Customers. Однако столбец относится к клиентам, связанным с грузовыми автомобилями, а не к клиентам, связанным с другими таблицами, такими как Vans.

Поэтому я могу заключить, что имеет смысл добавить этот новый столбец в CustomerTrucks вместо Customers. Таким образом, я не добавляю в таблицу Customers данные, которые в некоторых случаях были бы неиспользованными.

Но если я добавлю новый столбец в , соединяющий таблицу , что это будет делать с моделью сущностей? Обычно я ожидал бы, что у сущности Customers будет свойство коллекции с именем Trucks. Итак, как будет смоделирован мой новый столбец в соединительной таблице?

1 Ответ

0 голосов
/ 09 июля 2011

Если у вас есть обычная соединительная таблица только с двумя столбцами (FK для взаимосвязанных таблиц), вы не будете использовать такую ​​таблицу как сущность, поскольку EF может скрыть ее и напрямую обрабатывать отношение многие ко многим.

Как только вы добавляете какой-либо дополнительный столбец в соединительную таблицу, он больше не является соединительной таблицей и формирует перспективу EF, это уже не таблица «многие ко многим» (я не уверен, что это еще много для многих в терминология базы данных). Ваша CustomersTrucs стала полной сущностью со своими собственными данными, которые должны быть установлены в приложении.

Как вы описали, ваше новое свойство не является частью таблицы Customers, и поэтому оно также не принадлежит к сущности Customer - вам нужна сущность CustomersTruck в вашей модели, и эта сущность будет иметь два одно- отношения ко-многим (от одного до Customer и от одного до Truck). Из-за этого Customer и Truck теперь будут иметь свойство навигации CustomersTrucks.

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