У меня возникла проблема с Entity Framework 4 при добавлении новой сущности со ссылкой через навигатор к уже существующей. Пожалуйста, обратите внимание на код:Entity Framework 4 Добавление объекта со ссылкой на уже существующий объект
ControlPolicy cp1 = new ControlPolicy()
{
ControlPolicyLevelType = 2, //full access to NA
MemberState = context.Countries.First(tt => tt.IsMemberState),
OperaModuleType = 2,
MemberStateIncluded = true,
CreateDate = DateTime.Now,
CreatedByUserId = 1,
};
context.ControlPolicies.AddObject(cp1);
context.SaveChanges();
Ошибка:
Отношения от «ControlPolicy_MemberState_Country_» AssociationSet в состояние «Добавлено». Учитывая ограничения множественности, соответствующая «страна» также должна находиться в «добавленном» состоянии.
Когда я смотрю на ChangeTracker, объект ControlPolicy фактически находится в состоянии «Добавлено», а Country - в состоянии «Undefined». Я думаю, что это правильно - ведь я не добавляю новый объект, я хочу только обратиться к существующей стране.
У вас есть свойство MemberStateId (внешний ключ)? Попробуйте установить это свойство вместо установки ассоциации. –
Нет, у меня нет такого имущества, только штурман. – Konrad
Вы должны добавить внешний ключ к модели, это спасет вас от боли в будущем. См. Http://blogs.msdn.com/b/adonet/archive/2009/11/06/foreign-key-relationships-in-entity-framework.aspx –