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 が落ちてもメソッドはロールバックされません!
提案やヒントをいただければ幸いです..
前もって感謝します