Какие исключения должны привести к закрытию сессий Nhibernate? - PullRequest
0 голосов
/ 07 июня 2011

Я читал, что исключения Nhibernate приводят к недопустимому состоянию сеанса.Итак, мой вопрос в том, какие исключения я должен обработать и закрыть и снова открыть сеанс.И нужно ли перезагрузить все сущности?

Мой сценарий - я открываю сеанс в моем классе докладчика для формы.И я использую транзакции, такие как



 using (ITransaction transaction = session.BeginTransaction())
            {
                foreach (var item in records)
                {
                    session.Delete(item);
                }
                transaction.Commit();
           }

so, should I do this?

using (ITransaction transaction = session.BeginTransaction())
            {
                foreach (var item in records)
                {
                    session.Delete(item);
                }
                try
               {
                transaction.Commit();
               }
             catch(Exception ex)
               {
                 rollback,
                session.dispose
                session = factor.opensession()
                }

           }

1 Ответ

0 голосов
/ 07 июня 2011

Во-первых, я все время использую второй вариант. Что касается вопроса, размещение и открытие нового сеанса практически безболезненно , поэтому я обычно не против делать это "в случае возникновения ошибки".

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