ASP.NET MVC w / Entity Framework - UpdateException

时间:2010-02-02 14:36:50

标签: asp.net-mvc entity-framework

当我使用Entity Framework更新数据库中的对象时遇到问题。

首先,概念是:

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

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

用户:     ID     名称     等

组:     ID     名称

GroupMembers:     组ID     用户ID

GroupMembers中的两个字段都是与用户ID和组ID相关的外键。当我将其加载到Entity Framework时,它被正确建模,因为Group对象具有User对象列表,并且每个User对象都有一个Group对象列表。

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

var group = DAO.GetGroup(GroupID);
var user = DAO.GetUser(UserID);
group.Users.Add(user);
conn.SaveChanges();
  

无法更新EntitySet   'GroupMembers'因为它有一个   定义查询而不是   元素存在于    元件   支持当前的运作。

我已经看到在线建议向GroupMembers表添加ID字段的各种部分 - 但是如果我这样做,我会在EF中得到一个映射错误,抱怨ID没有映射到任何东西。

是否有人能够提供其他建议或解决方法?

谢谢,

克里斯

2 个答案:

答案 0 :(得分:1)

ID删除GroupMembers列。为[{1}}创建一个由 GroupMembersGroupID组成的PK。现在右键单击您的模型并从数据库更新它。

EF设计师需要知道UserIDGroupID这对是唯一的,才能使基数正确。

答案 1 :(得分:0)

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

感谢您的帮助: - )

克里斯