ヘッダー/詳細レコードへの挿入を担当するオブジェクトを作成するプロセスがあります。テーブルに挿入するコードを単独で実行すると、すべてが正常に実行されます。ただし、そのコードをループ内の別のクラスとして呼び出すと、例外が発生します。
System.Data.Entity.Infrastructure.DbUpdateException は処理され
ませんでした Message=INSERT ステートメントが FOREIGN KEY 制約 "FK_CAS_ClaimsAdjustment_Header835" と競合しました。データベース「ERA835DB」、テーブル「dbo.Header835」、列「TRANSACTIONID」で競合が発生しました。
表のTRANSACTIONID
列Header
は として設定されていIdentity=True
ます。子テーブルには、への FK でCAS_ClaimsAdjustment
ある列があります。TransactionID
Header.TransactionID
DBContext.SaveChanges()
同じコードが呼び出される方法によって動作が異なるように見えるのはなぜですか?
foreach (var file in Files)
{
Parser parser = new Parser();
parser.HandleFile(file);
}
public class Parser
{
public void HandleFile(string file)
{
using (Model.DbContext dbcontext)
{
foreach (var itemn in file)
{
Claims claim = new Claims();
// ...
dbcontext.Claims.Add(claim);
}
dbcontext.SaveChanges();
}
}
}