EntityReference具有EntityKey属性值,该值与此对象的EntityKey不匹配

时间:2011-07-11 05:46:11

标签: entity-framework

我想在Users表中添加实体框架用户。

我添加了所有参考文献,即

this.UserRolesReference.EntityKey = new System.Data.EntityKey("KEntities.UserRoles", "UserRoles", roleID);

this.OfficeMasterReference.EntityKey = new System.Data.EntityKey("KEntities.OfficeMaster", "SROCode", SROCode);

this.UserDesignationsReference.EntityKey = new System.Data.EntityKey("KEntities.UserDesignations", "UserDesignations", designationId);

当我这样做时

context.AddObject(this.GetType().Name.ToString(), this);[ this is object of Users]

它给了我一个错误

  

无法添加或附加对象,因为其EntityReference的EntityKey属性值与此对象的EntityKey不匹配。

Users表仅与UserRolesUserDesignationsOfficeMaster

有关系

仍然在导航属性中的KModel.edmx表下的Users文件中显示CustomPermissionsUserLog

CustomPermissionsUserLogUsers有关联,但我没有在其中插入任何值。

提前谢谢

1 个答案:

答案 0 :(得分:1)

在Entity Framework中,您不应该手动更改或设置RoleID,而是必须设置导航属性并正确更新RoleID。

Role adminRole = GetTheAdminRole(); // get instance of Role

User newUser =new User();

context.Users.Add(newUser);
newUser.Role = adminRole;

context.SaveChanges();