У меня есть проект Entity Framework v1. У меня есть два объекта (Роли и Разрешения), которые имеют отношения «многие ко многим» друг с другом. Я передаю объект для сохранения (через вызов WCF, я сам не создаю его из контекста), который имеет новые записи в отношениях «многие ко многим».Как сохранить дочерние отношения в Entity Framework
Я использую «context.ApplyPropertyChanges», чтобы обновить запись новыми свойствами. Я знаю, что это не обновляет отношения. Я пытаюсь либо сделать ChildCollection .Add ( relatedObject); или ChildCollection. Атрибут ( 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();
Спасибо.
контекст «это» автоматически создается ФОС сгенерированный код. Есть ли способ справиться с этим? Спасибо. – Sako73
Лучше всего использовать этот контекст вместо создания нового. Снова трудно сказать, не видя кода. –