【问题标题】:Fluent Nhibernate working with entities after session disposed会话处理后流利的 Nhibernate 与实体一起工作
【发布时间】:2012-05-29 10:55:48
【问题描述】:

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

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

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

更新

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

【问题讨论】:

    标签: session memory-leaks fluent-nhibernate dispose


    【解决方案1】:

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

    Session.QueryOver&lt;Entity&gt;.Future().ToList(); 中的 Future 也是一个 noop,因为之前没有其他操作具有 Future/future 值。

    【讨论】:

    • 谢谢,已经做了一些高负载测试来证明会话中的 POCO 模式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-15
    • 1970-01-01
    相关资源
    最近更新 更多