首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASP.NET MVC w/实体框架- UpdateException

ASP.NET MVC w/实体框架- UpdateException
EN

Stack Overflow用户
提问于 2010-02-02 14:36:49
回答 2查看 506关注 0票数 2

当我使用实体框架更新数据库中的对象时,我遇到了一个问题。

第一,概念是:

用户可以是组的成员,因此组包含用户。

要在数据库中对此进行建模,我有以下结构:

用户: ID、名称等。

组: ID名称

GroupMembers: GroupID UserID

GroupMembers中的两个字段都是与用户ID和组ID相关的外键。当我将其加载到实体框架中时,它的建模是正确的,因为一个组对象有一个用户对象列表,每个用户对象都有一个组对象列表。

但是,当我将一个用户添加到一个组时,我会遇到以下问题:

代码语言:javascript
复制
var group = DAO.GetGroup(GroupID);
var user = DAO.GetUser(UserID);
group.Users.Add(user);
conn.SaveChanges();

无法更新EntitySet 'GroupMembers‘,因为它有一个DefiningQuery,并且元素中不存在支持当前操作的元素。

我在网上看到了许多建议将ID字段添加到GroupMembers表中的片段--但是如果这样做,我会在EF中得到一个映射错误,它抱怨ID没有映射到任何东西。

有没有人能提供一些其他的建议,或者一个解决办法?

谢谢,

克里斯

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-02-02 15:00:59

ID列中删除GroupMembers列。为GroupMembers创建一个PK,包括GroupIDUserID。现在,右键单击您的模型并从DB更新它。

EF设计器需要知道GroupIDUserID对是唯一的,这样才能得到正确的基数。

票数 1
EN

Stack Overflow用户

发布于 2010-02-02 15:00:32

通过将GroupMembers中的两个字段作为主键,我现在可以将其添加到表中。

谢谢你的帮助:)

克里斯

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

https://stackoverflow.com/questions/2184783

复制
相关文章

相似问题

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