У меня есть проект Entity Framework v1. У меня есть два объекта (Роли и Разрешения), которые имеют отношения "многие ко многим" друг с другом. Я передаю объект для сохранения (через вызов WCF, я сам не создаю его из контекста), который имеет новые записи в отношениях "многие ко многим".
Я использую "context.ApplyPropertyChanges", чтобы обновить запись новыми свойствами. Я знаю, что это не обновляет отношения. Я пытаюсь либо выполнить ChildCollection.Add(relatedObject); или ChildCollection.Attach( relatedObject).
Когда я использую метод "Добавить", я получаю сообщение об ошибке: Объект нельзя добавить в ObjectStateManager, поскольку он уже имеет EntityKey. Используйте ObjectContext.Attach для присоединения объекта, имеющего существующий ключ.
Когда я использую метод "Прикрепить", я получаю сообщение об ошибке: Объект нельзя добавить в ObjectStateManager, поскольку он уже имеет EntityKey. Используйте ObjectContext.Attach для присоединения объекта, имеющего существующий ключ.
Я очень расстраиваюсь, и я думаю, что могу слышать, как Entity Framework смеется над мной.
Кто-нибудь знает, как я могу это решить?
MyRole x = context.Roles.FirstOrDefault(a => a.RoleId == this.RoleId);
context.ApplyPropertyChanges("Roles", this);
foreach (MyPermission p in this.Permissions)
{
x.Permissions.Add(p);
// ^ or v
x.Permissions.Attach(p);
}
context.SaveChanges();
Спасибо.