Проблема EF Core «многие ко многим» при добавлении новых данных (ошибка дублирования ключа) ⇐ C#
Проблема EF Core «многие ко многим» при добавлении новых данных (ошибка дублирования ключа)
У меня есть два класса с отношением M:N. Например:
класс Пользователь { внутренний идентификатор строка Имя ICollection Адреса } адрес класса { внутренний идентификатор строка Текст ICollection Пользователи } Пока все шло хорошо. EF автоматически создал таблицу N:M в моей базе данных. UserAddress с двумя столбцами (UserId и AddressId).
Когда я вставляю данные вручную с помощью SQL, выходные данные EF Core в порядке. Я получаю все свои данные. Но теперь у меня проблема со вставкой из моего приложения:
Я создаю нового Пользователя и хочу добавить существующий адрес.
List ListOfAdresses = ... //(из БД)! вар y = ListOfAdresses.First(); вар х = новый пользователь (); x.Адреса.Добавить(у); и теперь, когда я хочу добавить это в DBContext и сохранить, я получаю ошибку.
Он пытается создать новый адрес... Я получаю сообщение об ошибке
Ошибка дублирования ключа.
Как я могу это предотвратить? Я не хочу, чтобы он добавлял новый адрес. Я хочу, чтобы он взял существующий адрес из базы данных.
У меня есть два класса с отношением M:N. Например:
класс Пользователь { внутренний идентификатор строка Имя ICollection Адреса } адрес класса { внутренний идентификатор строка Текст ICollection Пользователи } Пока все шло хорошо. EF автоматически создал таблицу N:M в моей базе данных. UserAddress с двумя столбцами (UserId и AddressId).
Когда я вставляю данные вручную с помощью SQL, выходные данные EF Core в порядке. Я получаю все свои данные. Но теперь у меня проблема со вставкой из моего приложения:
Я создаю нового Пользователя и хочу добавить существующий адрес.
List ListOfAdresses = ... //(из БД)! вар y = ListOfAdresses.First(); вар х = новый пользователь (); x.Адреса.Добавить(у); и теперь, когда я хочу добавить это в DBContext и сохранить, я получаю ошибку.
Он пытается создать новый адрес... Я получаю сообщение об ошибке
Ошибка дублирования ключа.
Как я могу это предотвратить? Я не хочу, чтобы он добавлял новый адрес. Я хочу, чтобы он взял существующий адрес из базы данных.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение