Связано ли много-много отношений в EF6, чтобы таблица сопоставления была определена и имела первичный ключ?

asp.net asp.net-mvc entity-framework entity-framework-6 many-to-many

Вопрос

Используется ли таблица EF6 для многих для многих, для чего нужен первичный ключ, и нужно ли мне создавать класс для многих таблиц? Я видел два способа создания таблицы много-много. Тот, на который был дан ответ в этом вопросе:

Как я могу назвать много много для EF6 и мне нужно добавить для этого специальное сопоставление?

и тот, что здесь, в этом вопросе:

Entity Framework: отношение многих ко многим, вставка и обновление

Первый ответ предполагает таблицу с первичным ключом, в то время как второй ответ (с 6 голосами) предлагает совсем другой подход, когда таблица многого не определена в EF?

Мои мысли прямо сейчас состоят в том, что первичный ключ не нужен. Причина, по которой я так думаю, состоит в том, что, когда я смотрю на новые таблицы, созданные в ASP.NET Identity, тогда таблица UserRoles, которая много для многих, не имеет первичного ключа.

Принятый ответ

Когда два объекта связаны друг с другом с отношением «многие ко многим», Entity Framework Code First создает таблицу соединений без необходимости создания класса сущности для моделирования объединения.

Присоединиться к таблице не имеет первичный ключ , но в этом случае она представляет собой композиционная составлен из двух внешних ключей в таблицы , поддерживающих ваши объекты. В вашей первой ссылке я думаю, что ответ вводит в заблуждение, потому что EF не будет генерировать этот sql из этого свободного api - но он говорит вам, как назвать столбцы и таблицу, если вам не нравятся значения по умолчанию.

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

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

Справка:

Настройка отношения «многие ко многим»




Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему