在NHibernate中,我可以使用会话缓存中已有的数据初始化对象集合吗?

在NHibernate中,我可以使用会话缓存中已有的数据初始化对象集合吗?,nhibernate,Nhibernate,假设对象A包含对象B的集合。假设它是一对多(对象B只属于一个对象A) 现在假设出于某种原因,会话缓存中已经有了所有不同的对象B 现在,如果我去从数据库中获取一个对象A(给我一个对象A,其中包含一个未斜体化的对象B集合),有没有一种方法可以让nhibernate进入会话缓存,找到属于这个对象A的所有对象B,并初始化我刚得到的对象A中的对象B集合 通过初始化集合,我的意思是当我尝试使用它时,它不需要向数据库发送更多的查询 我用的是Nhibernate 3.2 谢谢 简短回答:不,那样不行。好的,谢谢

假设对象A包含对象B的集合。假设它是一对多(对象B只属于一个对象A)

现在假设出于某种原因,会话缓存中已经有了所有不同的对象B

现在,如果我去从数据库中获取一个对象A(给我一个对象A,其中包含一个未斜体化的对象B集合),有没有一种方法可以让nhibernate进入会话缓存,找到属于这个对象A的所有对象B,并初始化我刚得到的对象A中的对象B集合

通过初始化集合,我的意思是当我尝试使用它时,它不需要向数据库发送更多的查询

我用的是Nhibernate 3.2


谢谢

简短回答:不,那样不行。

好的,谢谢。迭戈,你又一次为我节省了时间和麻烦!这个答案并不完全正确。这是可能的,非常容易,但是你这样做并不是NHibernate真正的愿望。但如果出于某种奇怪的原因你还需要这个,我可以告诉你怎么做。使用会话缓存,我甚至可以构建撤消功能,而无需重新运行查询(我可以通过刷新撤消到数据库版本,也可以撤消到开始编辑数据库之前从数据库获得的原始数据)。@TedOnTheNet我对您的解决方案感兴趣。想补充一个答案吗?@TedOnTheNet-我不介意听到你的解决方案,我也对你的撤销功能感兴趣。现在,当用户必须撤消其更改时,我们只是从数据库重新加载。