0
2 개의 linq 쿼리가 있습니다. 유일한 쿼리로 인해 첫 번째 쿼리는 아무 것도 수행하지 않으며 OK입니다. 그러나 두 번째 레코드는 레코드를 추가하는 동안 아무 것도 수행하지 않습니다. 내가 첫 번째 쿼리를 무시하면 두 번째 쿼리가 작동합니다. 엔터티를 새로 고쳐야합니까? 어떻게?두 번째 엔터티 쿼리가 오류와 함께 실행됩니다.
foreach (var product in productList)
{
cc2nexo_SubiektProduct newproduct = new cc2nexo_SubiektProduct();
newproduct.Name = product.Name;
newproduct.VAT = product.VAT;
newproduct.Id = product.Id;
foreach (var stawkaVAT in myNexo_ExitoEntities.StawkiVat)
{
if (stawkaVAT.Stawka * 100 == tryconvert_dec(newproduct.VAT))
{
newproduct.VAT_Id = stawkaVAT.Id;
}
}
myNexo_ExitoEntities.cc2nexo_SubiektProduct.Add(newproduct);
SurroundWithTryCatchDB(() =>
{
myNexo_ExitoEntities.SaveChanges();
});
}
var orders = (from myorders in myNexo_ExitoEntities.temp_SubiektOrderList
select myorders).ToList();
foreach (var order in orders)
{
cc2nexo_SubiektOrderList neworder = new cc2nexo_SubiektOrderList();
neworder.Data_utworzenia_sprawy = tryconvert_date(order.Data_utworzenia_sprawy);
neworder.Data_modyfikacji_sprawy = tryconvert_date(order.Data_modyfikacji_sprawy);
neworder.Data_umowy = tryconvert_date(order.Data_umowy);
neworder.Id = order.Id;
myNexo_ExitoEntities.cc2nexo_SubiektOrderList.Add(neworder);
SurroundWithTryCatchDB(() =>
{
myNexo_ExitoEntities.SaveChanges();
});
Debug.WriteLine(neworder.LastName);
}
나는 오류
객체의 고유 인덱스 'dbo.cc2nexo_SubiektProduct'에 중복 키 행을 삽입 할 수 없습니다를 수신하고 'K_ID'. 중복 키 값은 (1)입니다. 문이 종료되었습니다.
오류 메시지는 중복 된 키 값이 있음을 나타냅니다. 이 값은 어디에서 결정됩니까? 각 행에 고유 한 키가 있는지 확인하려면 어떻게해야합니까? – danjp
두 번째 쿼리 만 실행하면 새 행이 cc2nexo_SubiektOrderList에 추가됩니다. 두 쿼리를 모두 실행하면 첫 번째 쿼리는 productList에 행을 추가하지 않습니다 (K_ID 인덱스로 인해 OK). 두 번째 쿼리는 행을 추가하지 않습니다. SaveChanges는 여전히 시도합니다 첫 번째 쿼리의 변경 사항을 저장) – Jacek