2011-11-24 51 views
0

假设对象A包含对象B的集合。假设它是一对多(对象B只属于一个对象A)在NHibernate中,我可以使用会话缓存中的数据初始化对象集合吗?

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

现在,如果我去从数据库中提取一个对象A(给我一个对象A和一个未初始化的对象B集合),有没有一种方法可以告诉nhibernate进入会话缓存并找到所有对象B属于这个对象A并初始化对象B在对象AI中的集合刚刚得到了吗?

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

我使用的是Nhibernate 3.2。

谢谢!

回答

1

简答:没有。它不这样工作。

+0

好的,谢谢。再一次迭戈,你为我节省了一些时间和麻烦! –

+0

这个答案并不完全正确。这很可能,很容易tbh,但是NHibernate并不希望你这样做。但如果出于某种奇怪的原因,你仍然需要这个,我可以告诉你如何。使用会话缓存我甚至设法构建了撤消功能,而无需重新运行查询(我可以通过刷新撤消数据库版本,或者在我开始编辑之前撤销从数据库获取的原始数据)。 – TedOnTheNet

+0

@TedOnTheNet我对你的解决方案感兴趣。想要添加答案吗? –

相关问题