C# NHibernate会话。逐出()

C# NHibernate会话。逐出(),c#,nhibernate,C#,Nhibernate,我无法访问面前的代码,所以我想知道是否有人可以帮助我完成Session.execute() 假设我有一个Person对象,它有一个子地址集合。我从会话中填充Person对象并延迟加载Addresses集合。然后我调用Session.execute(personObject)将Person对象从会话中分离。我的问题是,如果我尝试访问Addresses集合,它会返回null吗,还是会因为NHibernate代理找不到关联的会话而出现异常?我前面也没有代码,但是从内存中,您可能会遇到异常 如果延迟加载

我无法访问面前的代码,所以我想知道是否有人可以帮助我完成Session.execute()


假设我有一个Person对象,它有一个子地址集合。我从会话中填充Person对象并延迟加载Addresses集合。然后我调用Session.execute(personObject)将Person对象从会话中分离。我的问题是,如果我尝试访问Addresses集合,它会返回null吗,还是会因为NHibernate代理找不到关联的会话而出现异常?

我前面也没有代码,但是从内存中,您可能会遇到异常


如果延迟加载并工作,NHibernate将尝试加载Addresses集合。它永远不应该返回错误的值/集合,它只会在无法加载所请求的内容时发出抱怨。

如果在逐出实体之前导致延迟加载,则即使在逐出之后也可以访问该集合。但是,如果您逐出实体,然后尝试延迟加载子集合,则会出现异常

您将收到一个NHibernate.LazyInitializationException异常

这是有道理的。。。当我有机会的时候,我会试试看。感谢您的回答+1今天在进行单元测试时遇到了完全相同的场景