0

这是我的问题

我有两种形式,formA和formB,formB作为formA的对话框

在 formA 的范围内,定义为

EntityContext contextA = new EntityContext();

在formA的某处,它调用

new formB().ShowDialog();

调用 ShowDialog() 后,它带有

contextA.SaveChanges(); //<<<A>>>

在 formB 类中,定义为

EntityContext contextB = new EntityContext();

在某处触发

{
bool transactionSucceed = false;
using(Transaction transaction = new Transaction())
{
  contextB_DataOperations(); 
  contextB.SaveChanges();
  transaction.complete();
  transactionSucceed = true;
}
if(transactionSucceed)
  contextB.AcceptAllChanges(); // <<<B>>>
}

formB 是一次性的,在处理时,它调用

contextB.Dispose();

问题出在哪里,预期的事务操作数据<<<B>>>提交时间,实际上是提交时间<<<A>>>

4

1 回答 1

1

嗨,简单的方法是

      using (TransactionScope tx = new TransactionScope(TransactionScopeOption.RequiresNew))
{
    contextB_DataOperations(); 
    contextB.SaveChanges();
    contextB.AcceptAllChanges();
    TransactionScope .complete();

}

希望这会有所帮助

于 2012-07-05T09:24:20.560 回答