我想在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
表仅与UserRoles
,UserDesignations
和OfficeMaster
仍然在导航属性中的KModel.edmx
表下的Users
文件中显示CustomPermissions
,UserLog
CustomPermissions
和UserLog
与Users
有关联,但我没有在其中插入任何值。
提前谢谢
答案 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();