哪个集合导致NHibernate异常?
我得到了众所周知的NHibernate异常“非法尝试将一个集合与两个开放会话关联”。我对它进行了研究,我了解它的原因,但我的问题是,当我无法调试它时,它会在现场随机出现 我的问题是,是否有办法查询异常或当前NH状态,以找出是哪个集合或对象导致了这种情况哪个集合导致NHibernate异常?,nhibernate,castle-activerecord,Nhibernate,Castle Activerecord,我得到了众所周知的NHibernate异常“非法尝试将一个集合与两个开放会话关联”。我对它进行了研究,我了解它的原因,但我的问题是,当我无法调试它时,它会在现场随机出现 我的问题是,是否有办法查询异常或当前NH状态,以找出是哪个集合或对象导致了这种情况 顺便说一句,我确实成功地从SessionScope继承并重写了一些函数以向其添加日志记录,但这对异常本身并没有帮助。在抛出异常时附加调试器可以提示是什么集合导致了这一情况。您可能会保存一个特定的对象,这样您就可以尝试扣除它引用的集合。如果这没有帮
顺便说一句,我确实成功地从SessionScope继承并重写了一些函数以向其添加日志记录,但这对异常本身并没有帮助。在抛出异常时附加调试器可以提示是什么集合导致了这一情况。您可能会保存一个特定的对象,这样您就可以尝试扣除它引用的集合。如果这没有帮助,您可以尝试查找NHibernate会话的实例。在调试器中找到它后,您可以查看session.Statistics.EntityKeys和CollectionKeys。这些是NHibernate用于跟踪对象的内部结构。希望它能有所帮助……我的问题是这种情况在字段中发生(而且很少发生),因此发生时我无法附加调试器。我确实设法获得了statistics EntityKey,但它几乎是业务事务中加载的每个实体,因为这是一个ERP应用程序,所以它相当大。