方法保存更改() 显示'System.Data.Entity.Infrastructure.DbUpdateException'



我遇到了错误 'System.Data.Entity.Infrastructure.DbUpdateException'在我的POST方法中的SaveChanges()点。

类型的例外 'system.data.entity.infrastructure.dbupdateexception'发生在 entityframework.dll,但没有用用户代码处理 其他信息:无法更新EntitySet " product_category",因为它具有定义 元素存在于 支持当前操作的元素。

我已经通过提琴手测试了代码。代码在这里

public void POST([FromBody] Product_Category pc)
{
    ProductionEntities2 pd = new ProductionEntities2();
    pd.Product_Category.Add(pc);
    pd.SaveChanges();
}

SaveChanges中,通常会在表中指定主键时发生此错误。您需要在表中指定列为PK,然后更新您的实体并重试。

如果您使用的是DB-First方法:

创建一个主键:

  1. 在对象资源管理器中,右键单击要添加的表 独特的约束,然后单击设计。
  2. 在表设计器中,单击数据库列的行选择器 您要定义为主要键。如果您想选择 多列,单击行时按住CTRL键 其他列的选择器。
  3. 右键单击列的行选择器,然后选择"设置" 钥匙。

,如果您使用的是代码优先的方法,请使用[Key]属性。只是不要忘记首先将using System.ComponentModel.DataAnnotations;添加到您的using指令:

public class Product_Category
{
    [Key]
    public int Id{ get; set; }
}

相关内容