У меня есть устаревшая 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 падает!
Буду очень признателен за любое предложение или намек ..
заранее спасибо