我有旧版 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 下降,方法不会回滚!
我将非常感谢任何建议或提示..
先感谢您