我正在使用MVC 4和C#4.5与EntityFramework 4。
我已经设置了一个简单的多对多表:
tblAdminUser -> tblAdminUserRole <- tblAdminRole
当我尝试向admin用户添加角色时,出现以下错误:
“无法更新EntitySet'tllAdminUserRole',因为它有一个DefiningQuery,元素中不存在支持当前操作的元素。”
我使用的代码是:
this.Role = new tblAdminRole()
{
Name = "__role__",
};
context.tblAdminRoles.Add(this.Role);
context.SaveChanges();
this.AdminUser.tblAdminRoles.Add(this.Role);
context.SaveChanges();
答案 0 :(得分:5)
更新数据库,将m2m表中的表的外键对设置为主键。 然后将模型更新为数据库。
答案 1 :(得分:3)
请检查tblAdminUserRole
中的所有 ID字段是否已在SQL数据库中设置为主键。然后更新您的模型。
如果实体框架无法找出主键,它将生成SELECT
语句,但无法创建相应的INSERT
,UPDATE
和{{ 1}}陈述。