1

我有一个关于使用从 db 收到的实体的问题。目前我有很多操作,我需要从数据库中获取实体,并将它们传递给另一个服务。此类代码的简化版本如下所示:

List<Entity> list;
using(var session = SessionFactory.OpenSession())
{
    list = Session.QueryOver<Entity>.Future().ToList();
}

所以现在我不知道,如果长时间不释放对象列表,是否会导致内存与存储的会话一致。在会话期间接收到的对象存在时是否存在休眠会话?

更新

找到了一些会话设置 Session.ActiveEntityMode - POCO,它解决了我的问题吗?

4

1 回答 1

2

一旦使用结束,会话就会被处理。加载的所有实体仍然有效,除非未初始化延迟加载的集合/引用/属性。

Session.QueryOver<Entity>.Future().ToList();此外,当没有其他操作对它们具有 Future/futurevalue 时,Future in也是一个 noop。

于 2012-05-29T11:28:37.960 回答