首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NHibernate Session.Evict()

NHibernate Session.Evict()
EN

Stack Overflow用户
提问于 2009-03-24 22:14:41
回答 3查看 12.3K关注 0票数 9

我不能访问我面前的代码,所以我想知道是否有人可以用Session.Evict()来帮助我。

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-03-25 16:48:22

如果您在驱逐实体之前导致延迟加载发生,那么即使在驱逐之后,集合也是可访问的。但是,如果您逐出实体,然后尝试延迟加载子集合,您将得到一个异常。

票数 19
EN

Stack Overflow用户

发布于 2009-03-25 20:26:57

您将收到一个NHibernate.LazyInitializationException。

票数 6
EN

Stack Overflow用户

发布于 2009-03-25 05:50:09

我面前也没有代码,但是从内存中看,您可能会得到一个异常。

如果你已经启动并工作了延迟加载,NHibernate将尝试加载地址集合。它永远不应该返回不正确的值/集合,它只会在不能加载所请求的内容时才会抱怨。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/679474

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档