【问题标题】:NHibernate Future<T> with Get()NHibernate Future<T> 与 Get()
【发布时间】:2011-04-15 19:20:47
【问题描述】:

如何使用 Future 通过 Get() 来延迟执行以检索单个记录(或 Load()?)

另外,我可以将 Future 与分离的 QueryOver 一起使用

【问题讨论】:

    标签: nhibernate queryover


    【解决方案1】:

    Future with Load 没有任何意义,因为 Load 不会进入数据库。

    使用 get 的未来也没有意义,因为 Get 返回一个可能已经加载的实例,在这种情况下它也不会进入数据库。最接近的方法是按 id 查询。

    为了获得Future&lt;T&gt;,您需要一个可执行查询(Criteria/QueryOver/HQL/LINQ)。否则,future没有办法解决。

    【讨论】:

    • Get 的未来会很有意义。 “FutureGet”可以返回一个代理,并且在访问第一个代理时,它可以在单个数据库往返中加载所有“未来获得”的代理。无需刷新会话,仅包含尚未缓存的对象,这是Get 与查询相比的优势。
    • @StefanSteinegger:会很好,但 Future 还没有那么聪明。欢迎补丁:-)
    猜你喜欢
    • 2016-09-07
    • 2016-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-25
    • 2018-01-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多