当我想更新实体时,我试图将具有相关实体的实体附加到新上下文中。
我有一个具有 LanguageID 字段的人员表(广义为人员)。该字段作为 FK 通过 EF 链接到另一个表 Language,LanguageID 作为主键 (1-M)。我需要更新特定的 Persons 语言首选项,但是,该关系似乎仍然与旧上下文相关联,因为我在下面标记的行上收到“对象不能被多个 IEntityChangeTracker 实例引用”错误。有没有办法将语言实体作为人员(人)实体的关系附加到新的上下文中???
实体未在原始 GetPersonnel() 方法中分离,该方法使用 .Include() 方法返回 PreferredLanguage
PreferredLanguage 是 Person 表上的 NavigationProperty 名称...
public static void UpdateUser(Personnel originalUser, Personnel newUser )
{
using (AdminModel TheModel = new AdminModel())
{
((IEntityWithChangeTracker)originalUser).SetChangeTracker(null);
((IEntityWithChangeTracker)originalUser.PreferredLanguage).SetChangeTracker(null);
TheModel.Attach(originalUser);--Error Line
TheModel.ApplyPropertyChanges("Person", newUser);
TheModel.SaveChanges();
}
}
谢谢肖恩