2

我有旧版 dll,它在一种方法中使用多个 NHibernate 事务。我的任务是让这个方法充当一个事务,所以我认为 TransactionScope 应该对我有所帮助。但是,当我做了这样的事情时:

using (TransactionScope tx = new TransactionScope())
{
    #region.. code inside dll

    using (ISession session1 = ...)
    using (ITransaction tx1 = session.BeginTransaction())
    {
        // ...do work with session
        tx1.Commit();
    }

    using (ISession session2 = ...)
    using (ITransaction tx2 = session.BeginTransaction())
    {
        // ...do work with session
        tx2.Commit();
    }

    #endregion

    tx.Complete();
}

...如果 tx2 下降,方法不会回滚!

我将非常感谢任何建议或提示..

先感谢您

4

0 回答 0