NHIbernate刷新系列

Dan*_*olz 6 c# collections nhibernate

我知道这已被问过,但我无法解决这个问题.

假设你有一个拥有集合的nhibernate对象.

问题是,如果集合中的某个对象是由不同的用户在数据库中更新的(我手动修改了数据库的测试目的),我似乎找不到让nhibernate刷新集合值的方法.

我试过刷新,逐出,加载againg ...只关闭会话并创建一个新的工作.但是我发现这个解决方案有问题,并且告诉nhibernate"老兄,刷新集合中的项目"有多难?

但无论如何我无法让它发挥作用.

非常感谢

Dav*_*ney 1

这实际上不应该起作用,这就是它不起作用的原因。

NHibernate 默认使用会话级缓存来优化读取和跟踪修改。

听起来您没有在数据访问方面使用正确的工作单元,因为您的会话应该缩小范围并仅在需要时使用。

如果这是网络应用程序的一部分,建议您遵循“每个请求一个会话”的方法。

如果您真的希望它起作用,您可能可以从会话中驱逐实体及其子级,强制重新获取,但这很糟糕,我真的不建议这样做。