2

1 つのメソッドで複数の NHibernate トランザクションを使用するレガシー dll があります。私の仕事は、このメソッドを 1 つのトランザクションとして機能させることなので、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