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

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

 [Как я могу назвать много много для EF6 и мне нужно добавить для этого специальное сопоставление?](https://stackoverflow.com/questions/21240588/how-do-i-name-a-many-many-table-for-ef6-and-do-i-need-to-add-special-mapping-for) 

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

 [Entity Framework: отношение многих ко многим, вставка и обновление](https://stackoverflow.com/questions/16545550/entity-framework-many-to-many-relationship-insert-and-update) 

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

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

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

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

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

 То, о чем вы должны знать, это то, что иногда вы начинаете с отношений «многие ко многим», тогда вы понимаете, что сама связь имеет некоторые атрибуты - и тогда вам нужно [продвигать отношения к сущности в своем собственном праве,](https://stackoverflow.com/a/19172837/150342) и вы, вероятно, будете добавить другой первичный ключ 

 Справка: 

 [Настройка отношения «многие ко многим»](http://msdn.microsoft.com/en-gb/data/jj591620.aspx#ManyToMany)