首页 文章

无法更新EntitySet '…',因为它有一个DefiningQuery

提问于
浏览
2

我正在使用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 回答

  • 3

    如果 tblAdminUserRole 中的所有 ID fields 都已在SQL数据库中设置为 Primary Key ,请检查 . 然后更新您的模型 .

    如果实体框架无法找出主键,它将生成 SELECT 语句,但它将无法创建相应的 INSERTUPDATEDELETE 语句 .

  • 4

    更新数据库,将m2m表中的表的外键对设置为主键 . 然后将模型更新到数据库 .

相关问题