在一个事务中Nhibernate多个数据库

时间:2015-11-09 13:52:28

标签: c# .net nhibernate fluent-nhibernate

我的程序访问2个数据库并执行一些数据库工作。我想在一个事务中执行这些工作,如果其中一个得到任何错误,也不应该提交另一个错误。

这就是我现在所处的程序的简单代码。

using (var transactionScope = new TransactionScope(TransactionScopeOption.Required, transactionOptions))
{
            using (var session1 = NHibernateHelper.OpenSession1())
            {
                using (var session2 = NHibernateHelper.OpenSession2())
                {
                    using (var trnx1 = session1.BeginTransaction())
                    {
                        using (var trnx2 = session2.BeginTransaction())
                        {

                            session2.Save(bla bla);
                            session1.Update(bla bla);
                            trnx2.Commit();
                            trnx1.Commit();
                        }
                    }

                }
            }
            transactionScope.Complete();
}

我希望如果trnx1中出现错误,trnx2应该回滚。 数据库位于同一服务器中。

0 个答案:

没有答案