我无法在我面前访问代码,所以我只是想知道是否有人可以帮我解决Session.Evict()问题.
假设我有一个带有子集合地址的Person对象.我从会话中填充Person对象并延迟加载Addresses集合.然后我调用Session.Evict(personObject)从会话中分离Person对象.我的问题是,如果我尝试访问Addresses集合,它只会返回null,或者我会得到一个异常,因为NHibernate代理无法找到关联的会话?
如果在驱逐实体之前导致延迟加载,则即使在驱逐之后也可以访问该集合.但是,如果您逐出实体然后尝试延迟加载子集合,您将获得异常.
您将收到NHibernate.LazyInitializationException.