Как обрабатывать NN отношения в EF? - PullRequest
0 голосов
/ 07 февраля 2011

Предположим, у меня есть 3 таблицы в БД для взаимосвязи "многие ко многим":

TabA (id1, ...): первичный ключ: id1

TabB (id2, ...): Первичный ключ: id2

TabAB (Id1, id2, ..): Внешний ключ: id1, id2

Поэтому, когда я создаю edmx с VS 2010 из БД, я получаю только две сущности TabA иTabB в модели, потому что TabAB не имеет первичного ключа.

Как обработать этот случай с EF?

Ответы [ 2 ]

1 голос
/ 07 февраля 2011

Вы уверены, что EF не превратила TabAB в отношения? Он не будет отображаться в виде таблицы в модели, если нет других столбцов. EF выясняет, что TabAB является таблицей соединений, и обрабатывает ее соответствующим образом.

Если нет, лучшим способом было бы изменить TabAB на составной первичный ключ как id1 и id2. Если есть какая-то причина, по которой комбинация значений не является уникальной, было бы полезно выяснить, почему.

0 голосов
/ 22 февраля 2011

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

Подробнее здесь - http://weblogs.asp.net/zeeshanhirani/archive/2008/08/21/many-to-many-mappings-in-entity-framework.aspx.

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