这是我从Fiddler的JSON TAB获得的错误
ExceptionMessage =违反PRIMARY KEY约束' PK__product__9F8A5DAA2DC12F46'。无法在对象' dbo.product'中插入重复键。重复键值为(13)。 声明已经终止。
我在正文中输入的命令是
{" ib_itemcode1":" 13"," transtatuscode":" 13"," invtid": " 14"," descr":" 13"}
这是我的功能,我认为应该纠正。
public HttpResponseMessage Post([FromBody] product productrecord)
{
try
{
using (estocktakeEntities entities = new estocktakeEntities())
{
entities.products.Add(productrecord);
entities.SaveChanges();
var message = Request.CreateResponse(HttpStatusCode.Created, productrecord);
message.Headers.Location = new Uri(Request.RequestUri + productrecord.ib_itemcode1.ToString());
return message;
}
}
catch (Exception ex)
{
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex);
}
}
这是我的数据库SQL
这是我的数据库
我想添加另一个共享相同ib_itemcode1的项目。
我该怎么做?
答案 0 :(得分:2)
在此行中添加产品之前
entities.products.Add(productrecord);
检查您要添加的产品是否已经可用。如果已经可用,请更新它而不是添加。 如果没有,则添加它。
"违反PRIMARY KEY约束"
如果主键中有相同的项目并且您尝试使用相同的键添加新记录,则会出现错误。检查一下。
要更新,您可以在使用实体框架时尝试使用以下内容。
entities.Entry(productrecord).State = System.Data.Entity.EntityState.Modified;
entities.SaveChanges();