【发布时间】:2011-04-15 19:20:47
【问题描述】:
如何使用 Future 通过 Get() 来延迟执行以检索单个记录(或 Load()?)
另外,我可以将 Future 与分离的 QueryOver 一起使用
【问题讨论】:
标签: nhibernate queryover
如何使用 Future 通过 Get() 来延迟执行以检索单个记录(或 Load()?)
另外,我可以将 Future 与分离的 QueryOver 一起使用
【问题讨论】:
标签: nhibernate queryover
Future with Load 没有任何意义,因为 Load 不会进入数据库。
使用 get 的未来也没有意义,因为 Get 返回一个可能已经加载的实例,在这种情况下它也不会进入数据库。最接近的方法是按 id 查询。
为了获得Future<T>,您需要一个可执行查询(Criteria/QueryOver/HQL/LINQ)。否则,future没有办法解决。
【讨论】:
Get 的未来会很有意义。 “FutureGet”可以返回一个代理,并且在访问第一个代理时,它可以在单个数据库往返中加载所有“未来获得”的代理。无需刷新会话,仅包含尚未缓存的对象,这是Get 与查询相比的优势。