Составной ключ Entity Framework (отношение "многие ко многим" с полезной нагрузкой)

У меня есть таблицы базы данных, как это:

диаграмма трех таблиц базы данных: человек, членство и команда

Человек может быть членом многих команд. Команда может иметь много членов. Каждый человек может иметь должность (думаю, должность) в команде.

Я попытался настроить это с ADO.NET Entity Framework и получить ошибки:

Ошибка 3021: проблема в сопоставлении фрагментов, начинающихся со строки... Каждый из следующих столбцов в таблице Членство сопоставлен с несколькими концептуальными свойствами стороны: Membership.PersonId сопоставлен с

а также

ошибка 3021: проблема в сопоставлении фрагментов, начинающихся со строки... Каждый из следующих столбцов в таблице Членство сопоставлен с несколькими концептуальными свойствами стороны: Membership.TeamID сопоставлен с

Первичный ключ моей сущности Членства - это составной ключ из двух внешних ключей. Я думаю, что это проблема.

Что я должен сделать по-другому?

1 ответ

Решение

Это происходит, если вы используете независимую ассоциацию для свойства, которое является одновременно частью первичного ключа и внешнего ключа. В EFv4 введено сопоставление внешних ключей ( здесь описано различие), и как только вы представите внешний объект в сущности, вы должны определить привязку внешнего ключа. После определения референтных ограничений удалите отображение независимой ассоциации в окне Сведения о отображении.

Другие вопросы по тегам