Я сталкиваюсь с проблемой при обновлении объекта в моей базе данных с использованием Entity Framework.
Во-первых, концепция такова:
Пользователь может быть членом группы, следовательно, группа содержит пользователей.
Чтобы смоделировать это в базе данных, у меня есть следующая структура:
Пользователи:
Я БЫ
название
и т.д.
Группа:
Я БЫ
Имя
GroupMembers:
GroupID
Идентификатор_пользователя
Оба поля в GroupMembers являются внешними ключами, связанными с идентификатором пользователя и идентификатором группы. Когда я загружаю это в Entity Framework, он корректно моделируется в том смысле, что у объекта группы есть список объектов пользователя, а у каждого объекта пользователя - список объектов группы.
Однако, когда я иду, чтобы добавить пользователя в группу, я получаю следующую проблему:
var group = DAO.GetGroup(GroupID);
var user = DAO.GetUser(UserID);
group.Users.Add(user);
conn.SaveChanges();
Невозможно обновить EntitySet
«GroupMembers», потому что он имеет
DefiningQuery и нет
элемент существует в
элемент
для поддержки текущей операции.
Я видел в Интернете различные статьи, в которых предлагалось добавить поле идентификатора в таблицу GroupMembers. Однако, если я это сделаю, в EF появится ошибка сопоставления, в которой будет указано, что идентификатор не сопоставлен ни с чем.
Кто-нибудь сможет дать какой-нибудь другой совет или обходной путь?
Спасибо
Chris