2010-06-07 55 views
1

当调用Commit(用于IEnlistmentNotification的实现)时,我是否可以引发异常来指示我希望事务回滚?IEnlistmentNotification接口的两阶段提交

+2

后'Commit'被称为是为时已晚回滚。 – 2010-06-07 17:55:55

+0

实际上,没有 - 直到Enlistment.Done()在实现实例中调用,仍然有机会回滚! – 2010-06-07 22:20:44

+0

我的回答不是你要找的东西吗? – 2010-08-05 20:49:53

回答

0

而应该叫Transaction.Rollback(Exception ex)

public void Commit(Enlistment enlistment) 
    { 
     Transaction currentTx = Transaction.Current; 
     if (currentTx != null) 
     { 
     currentTx.RollBack(new Exception("I give up!"); 
     } 
    } 
+0

根据我的测试代码,当调用Commit()方法时,似乎Transaction.Current始终为空。有任何想法吗? – matori82 2014-01-13 15:21:12