当我使用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没有映射到任何东西。
是否有人能够提供其他建议或解决方法?
谢谢,
克里斯
答案 0 :(得分:1)
从ID
删除GroupMembers
列。为[{1}}创建一个由 GroupMembers
和GroupID
组成的PK。现在右键单击您的模型并从数据库更新它。
EF设计师需要知道UserID
和GroupID
这对是唯一的,才能使基数正确。
答案 1 :(得分:0)
通过将GroupMembers中的两个字段作为主键,我现在可以添加到表中。
感谢您的帮助: - )
克里斯