Важность использования TransactionScope - PullRequest
2 голосов
/ 16 сентября 2010

Какая разница между

using (var scope = new TransactionScope(TransactionScopeOption.Required))
        {
        using (ISession session = NHibernateHelper.OpenSession())
        {
            using (ITransaction transaction = session.BeginTransaction())
            {
                session.Delete(entity);
                transaction.Commit();
            }
        }
        scope.Complete();
        } 

а просто используя?

using (ISession session = NHibernateHelper.OpenSession())
        {
            using (ITransaction transaction = session.BeginTransaction())
            {
                session.Delete(entity);
                transaction.Commit();
            }
        }

Каковы преимущества и недостатки и когда их целесообразно использовать?

1 Ответ

0 голосов
/ 16 сентября 2010

Поскольку вы используете транзакции TransactonScope и NHibernate , у вас есть какая-то дублированная логика. Если вы хотите работать с простой транзакцией SQL, вам следует использовать транзакцию NHibernate .

Класс TransactionScope предназначен для использования в любом общем сценарии транзакции. Например, он используется в EntityFramework. При использовании NHibernate он вам не нужен, но он стал очень полезным, когда вам нужно реализовать механизм пользовательских транзакций .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...