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