首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EntityReference有一个与此对象的EntityKey不匹配的EntityKey属性值。

EntityReference有一个与此对象的EntityKey不匹配的EntityKey属性值。
EN

Stack Overflow用户
提问于 2011-07-11 05:46:10
回答 1查看 3.9K关注 0票数 0

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

我添加了所有的参考资料,即。

代码语言:javascript
复制
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);

当我这么做的时候

代码语言:javascript
复制
context.AddObject(this.GetType().Name.ToString(), this);[ this is object of Users]

它给了我一个错误

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

Users表仅与UserRolesUserDesignationsOfficeMaster有关联。

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

CustomPermissionsUserLogUsers有关联,但我不会在它们中插入任何值。

提前谢谢你

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-11 17:37:42

在实体框架中,不应该手动更改或设置RoleID,而是必须设置导航属性,RoleID将被正确更新。

代码语言:javascript
复制
Role adminRole = GetTheAdminRole(); // get instance of Role

User newUser =new User();

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

context.SaveChanges();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6646224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档