【问题标题】:Unable to update the EntitySet '...' because it has a DefiningQuery无法更新 EntitySet '...',因为它有一个 DefiningQuery
【发布时间】:2012-09-01 06:07:14
【问题描述】:

我将 MVC 4 和 C# 4.5 与 EntityFramework 4 一起使用。

我已经设置了一个简单的多对多表:

tblAdminUser -> tblAdminUserRole <- tblAdminRole

当我尝试向管理员用户添加角色时,我收到以下错误:

“无法更新 EntitySet 'tblAdminUserRole',因为它有一个 DefiningQuery 并且元素中不存在支持当前操作的元素。”

我使用的代码是:

this.Role = new tblAdminRole()
{
    Name = "__role__",
};

context.tblAdminRoles.Add(this.Role);
context.SaveChanges();

this.AdminUser.tblAdminRoles.Add(this.Role);
context.SaveChanges();

【问题讨论】:

    标签: c# asp.net-mvc entity-framework


    【解决方案1】:

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

    【讨论】:

    【解决方案2】:

    请检查tblAdminUserRole 中的所有ID 字段 是否已在您的SQL 数据库中设置为主键。然后更新您的模型。

    如果 Entity Framework 无法确定主键,它将生成 SELECT 语句,但无法创建相应的 INSERTUPDATEDELETE 语句。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-30
      • 1970-01-01
      • 2011-11-26
      • 2011-01-31
      • 2023-04-07
      • 2013-02-25
      • 2010-12-08
      • 2021-03-10
      相关资源
      最近更新 更多