Castle Activerecord 对象不刷新

发布于 2024-09-10 08:12:29 字数 103 浏览 2 评论 0原文

我正在使用城堡活动记录,我使用 .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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

阳光下的泡沫是彩色的 2024-09-17 08:12:29

这个问题可能来自 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文