Как сохранить дочерние объекты отношений в Entity Framework
У меня есть проект Entity Framework v1. У меня есть две сущности (роли и разрешения), которые имеют отношения многие ко многим друг с другом. Я передаю объект для сохранения (посредством вызова WCF, я не создаю его из контекста самостоятельно), у которого есть новые записи в отношении многие ко многим.
Я использую "context.ApplyPropertyChanges", чтобы обновить запись с новыми свойствами. Я знаю, что это не обновляет отношения, хотя. Я пытаюсь либо сделатьChildCollection.Добавлять(relatedObject); или жеChildCollection.Прикреплять(relatedObject).
Когда я использую метод «Добавить», я получаю сообщение об ошибке: объект не может быть добавлен в ObjectStateManager, потому что он уже имеет EntityKey. Используйте ObjectContext.Attach, чтобы прикрепить объект, который имеет существующий ключ.
Когда я использую метод 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();
Благодарю.