2017-11-27 13 views
0

2つのlinqクエリがあります。ユニークなインデックスのために最初のクエリは何もしません。これは問題ありません。しかし、レコードを追加しなければならない間、2番目のものも何もしません。最初のクエリをバイパスする場合、2番目のクエリが機能します。エンティティを更新する必要がありますか?どうやって ?2番目のエンティティクエリがエラーで実行されます

 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)です。ステートメントが終了しました

+0

エラーメッセージは、重複するキー値があることを示します。この値はどこで決定されますか?そして、どのようにして各行にユニークなキーがあることを確認していますか? – danjp

+0

2番目のクエリのみを実行すると、cc2nexo_SubiektOrderListに新しい行が追加されます。両方のクエリを実行すると、最初のクエリはproductListに行を追加しません(これはK_IDインデックスのためOKです)。最初のクエリの変更を保存する) – Jacek

答えて

0

問題の理由は、私の質問に記載されていないSurroundWithTryCatchDBプロシージャでした。最初のクエリはユニークなインデックスのため例外を発生させたため、次のSaveChangesは機能しませんでした。私はユニークな値で作業するように最初のクエリを変更しましたが、今はすべてOKです。

関連する問題