Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
哪些例外情况应导致Nhibernate会话关闭?_Nhibernate - Fatal编程技术网

哪些例外情况应导致Nhibernate会话关闭?

哪些例外情况应导致Nhibernate会话关闭?,nhibernate,Nhibernate,我读到Nhibernate异常导致会话状态无效。所以,我的问题是,我应该处理哪些异常,关闭并重新打开会话。?我应该重新加载所有实体吗 我的场景-我正在演示者类中为表单打开一个会话。而且,我使用的是如下事务 using (ITransaction transaction = session.BeginTransaction()) { foreach (var item in records) {

我读到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()
                }

           }

首先,我一直使用第二个选项。现在的问题是,处理和打开一个新会话是如此,所以我通常不介意“如果发生任何错误”就这样做