在GenericADOException之后尝试Session.GetAll时,"MyEntityType"条目中的null id(在发生异常后不刷新会话)

Omu*_*Omu 7 .net c# nhibernate

我用InnerException.Message ="Unique key violation ..."捕获GenericADOException,告诉用户输入的登录名已被使用.
之后,我正在尝试获取一些日期(Session.CreateCriteria)我得到此错误:"MyEntityType"条目中的null id(在发生异常后不刷新会话)

Mic*_*dox 7

http://www.nhforge.org/doc/nh/en/index.html#manipulatingdata-exceptions

如果ISession抛出异常,则应立即回滚事务,调用ISession.Close()并丢弃ISession实例.某些ISession方法不会使会话保持一致状态.

你是否在异常后丢弃会话并开始一个新的会话?

  • 如果我在抛出异常后执行 Session.Clear() ,那么我就不会遇到这个问题,但我认为清除整个 webapp 的 Session 不是一个好主意,因为有一个用户一个例外 (2认同)