我遇到了错误 '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方法:
创建一个主键:
- 在对象资源管理器中,右键单击要添加的表 独特的约束,然后单击设计。
- 在表设计器中,单击数据库列的行选择器 您要定义为主要键。如果您想选择 多列,单击行时按住CTRL键 其他列的选择器。
- 右键单击列的行选择器,然后选择"设置" 钥匙。
,如果您使用的是代码优先的方法,请使用[Key]
属性。只是不要忘记首先将using System.ComponentModel.DataAnnotations;
添加到您的using
指令:
public class Product_Category
{
[Key]
public int Id{ get; set; }
}