2017-02-23 12 views
-1

Это ошибка, я получаю от JSON TAB в СкрипачОшибка при POST Скрипач

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.

Как мне это сделать?

+0

Знаете ли вы о PK (Primary Key) Constraint? – gypsyCoder

+0

@gypsyCoder Да, я знаю, что не может быть 2 одинаковых PK, я добавляю 2 разных pk с тем же ib_itemcode1. – Chris

ответ

2

перед добавлением продукта в этой строке

entities.products.Add(productrecord); 

Проверьте, если продукт, который вы собираетесь добавить, уже доступны или нет. Если он уже доступен, обновите его, а не добавьте. Если недоступно, добавьте его.

«Нарушение ограничения PRIMARY KEY» появляется

ОШИБКИ, когда у вас есть один и тот же элемент в первичном ключе, и вы пытаетесь добавить новую запись с тем же ключом. Проверь это.

Чтобы обновить, вы можете попробовать использовать эту нижнюю строку, поскольку вы используете сущность framework.

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

.state? мне нужно что-то импортировать? – Chris

+0

«.State» - это свойство, используемое в структуре сущности для определения текущего состояния для определенного объекта. –

Смежные вопросы