У меня есть проект Entity Framework v1. У меня есть две сущности (роли и разрешения), которые имеют отношения многие ко многим друг с другом. Я передаю объект для сохранения (посредством вызова WCF, я не создаю его из контекста самостоятельно), у которого есть новые записи в отношении многие ко многим.
Я использую "context.ApplyPropertyChanges", чтобы обновить запись с новыми свойствами. Я знаю, что это не обновляет отношения, хотя. Я пытаюсь либо сделать ChildCollection .Add ( relatedObject ); или ChildCollection .Attach ( 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();
Спасибо.