Castle Activerecord 对象不刷新
我正在使用城堡活动记录,我使用 .Find() 方法加载实体,更新数据库后我调用实体.Refresh() 但实体不刷新,我在数据库中更改的数据未反映在实体的状态。我完全不知道如何让它发挥作用。
I am using castle active record, I load an enity using the .Find() method, after updating the database i call entity.Refresh() but the entity doesn't refresh, the data that i changed in the database is not reflected in the state of the entity. I am at a total loss as to how to get this to work.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这个问题可能来自 NHibernate 缓存。
为了节省数据库连接,如果一个对象已经从数据库加载,它会被保存在缓存中(不过期),如果你想获取这个值,NHibernate会给你缓存的值。
如果您执行数据库直接更新,则在缓存过期之前您不会在应用程序中看到它。
为了防止这种情况,如果你的基础可以直接更新,你必须停用 NHibernate 缓存。
This problem probably comes from a NHibernate cache.
In order to save database connection, if an object has been loaded from the database, it is kept in the cache (while not expired), and NHibernate will give you the cached value if you want to get this value.
If you do a dabase direct update, you won't see it in the application until the cache has expired.
To prevent that, if your base can be updated directly, you have to desactivate the NHibernate cache.