NHibernate在延迟加载操作上失败

时间:2012-01-13 05:10:09

标签: nhibernate

当我从存储库中获取相同类型的第三个​​对象(快速连续)时,我看到以下错误。最初的获得成功但是当我回去获取细节时,其余的负载发生了,我看到了。

NHibernate.Exceptions.GenericADOException: could not load an entity

我已经遍布数据了,第三项完全没什么奇怪的。它的所有引用对象都是完全正常的。然而,问题是一致的,因此可能不是时间问题。其他对象成功使用相同的Session对象。

我也同时在NHibernate日志中看到以下内容:

NHibernate.Util.ADOExceptionReporter System.InvalidOperationException: Invalid attempt to call MetaData when reader is closed.

根据我对此错误的研究,这意味着NHibernate在迭代超过最后返回的行后尝试使用读取器。但是,我不知道这是怎么发生的,因为行是由NHibernate本身的初始get生成的(现在它正在用延迟读取来充实)。

我很难过。

1 个答案:

答案 0 :(得分:0)

我们找到了罪魁祸首。使用Components映射Passenger类。其中一个组件指定了CustomType。当该组件被注释掉时,问题就消失了。恢复组件后,问题就会恢复。

目前,这将作为解决方案。

BTW,该组件在基于SQLite的单元测试中工作。只有在转移到SQL Server 2008时才会造成麻烦。