数据库更新应用程序外

时间:2010-11-25 09:19:07

标签: mysql nhibernate

我是否正确,假设如果另一个进程更新了数据库,那么我的NHibernate驱动的应用程序将会不同步?我差点使用非延迟更新。

我的目标数据库是mysql 5.0,如果它有任何区别。

2 个答案:

答案 0 :(得分:1)

是的,当前会话中的对象将不同步,如果您获取它并且另一个进程更新相同的数据,则DataSet / DataTable将不同步。

答案 1 :(得分:1)

没有更多的背景,没有一种简单的方法可以回答这个问题。

您在考虑什么类型的应用程序(Web,桌面,其他)?

您认为完全不同步的是什么?

如果您的桌面应用程序具有打开的会话,其中包含已加载数据的打开会话,并且您在其他位置更改了相同的实体,当然数据库将不同步,但您可以使用Refresh更新这些实体。

如果使用NH二级缓存并在其他位置修改缓存实体,缓存内容将不同步,但您仍可以使用刷新或缓存控制方法直接从数据库进行更新。

在所有情况下,NH都通过使用版本属性为乐观并发提供支持;那些阻止修改不同步的实体。