0

我有一个创建负责插入标题/详细信息记录的对象的过程。如果我运行代码自行插入到表中,那么一切都运行良好。但是,当我在循环中将该代码作为单独的类调用时,会出现异常:

System.Data.Entity.Infrastructure.DbUpdateException 未处理
Message=INSERT 语句与 FOREIGN KEY 约束“FK_CAS_ClaimsAdjustment_Header835”冲突。冲突发生在数据库“ERA835DB”、表“dbo.Header835”、列“TRANSACTIONID”中。

表中的TRANSACTIONIDColumnHeader设置为Identity=True。子表CAS_ClaimsAdjustment有一个TransactionIDFK to列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();

    }
  }


}
4

1 回答 1

0

我解决了我的问题。在我的控制台应用程序中,我将我的实体声明为“静态”。当然,这没有用。一旦我删除了 static 关键字,一切都很好。

于 2013-01-09T00:52:09.957 回答