POST FiDDLER错误

时间:2017-02-23 05:44:40

标签: c# sql rest

这是我从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

enter image description here

这是我的数据库

enter image description here

我想添加另一个共享相同ib_itemcode1的项目。

我该怎么做?

1 个答案:

答案 0 :(得分:2)

在此行中添加产品之前

entities.products.Add(productrecord);

检查您要添加的产品是否已经可用。如果已经可用,请更新它而不是添加。 如果没有,则添加它。

  

"违反PRIMARY KEY约束"

如果主键中有相同的项目并且您尝试使用相同的键添加新记录,则会出现错误。检查一下。

要更新,您可以在使用实体框架时尝试使用以下内容。

 entities.Entry(productrecord).State = System.Data.Entity.EntityState.Modified;
 entities.SaveChanges();