sesion.Get(ID);有时产生GenericADOException:
无法加载实体:[PFC __ Servidor.Entidades.Usuario#10] [SQL:SELECT usuario0 .us_id as us1_1_0_,usuario0_.us_email as us2_1_0_,usuario0_.us_contrasena as us3_1_0_ FROM public。 usuario usuario0_ WHERE usuario0_.us_id =?]
任何已知问题在哪里?为什么不总是失败?
PD:抱歉我的英文。ACT1:内部异常: [System.NullReferenceException]“对象引用未设置为对象的实例”
答案 0 :(得分:0)
你能发布innerException吗?
<强>更新强>
我也发现了这个:
答案 1 :(得分:0)
有时候
您的会话是否在线程之间共享?如果是这样,死亡。会话不是线程安全的。
答案 2 :(得分:0)
当我开始实现当前框架时,我遇到了这个问题。事实上,正如Jason所建议的那样 - 您需要将NHibernate会话范围设置为按请求。这意味着将为每个请求打开一个新会话,并在请求结束时关闭。但是,每个应用程序启动时只创建一次会话工厂,因为这是最昂贵的部分。
您是否正在使用任何依赖注入?您可以找到有关如何在Windsor Castle NHibernate facility上实现每请求会话范围的很好示例。
如果您是手动执行此操作,则可以在Global.asax Request_begin中打开NHibernate会话,并确保它已关闭并以Request_End方法处理。
使用NHIbernate的一种巧妙方法是: