2010-11-25 2 views
1

am Правильно ли я предполагаю, что если другой процесс обновляет БД, то мое приложение с NHibernate будет отключено? Я почти использую не-ленивое обновление.Обновление базы данных за пределами приложения

My target DB - это mysql 5.0, если это имеет значение.

+0

Пожалуйста, используйте более описательные заголовки, которые «Easy one on NHibernate»; теги должны показать, что это для NHibernate (что вы сделали), и заголовок должен намекнуть на эту тему, чтобы помочь обеим гуглерам искать похожие ответы и людей здесь, чтобы определить, что это вопрос, на который они могут ответить. – joshcomley 2010-11-25 10:08:47

+0

В то время, когда я писал, мне ничего не приходило в голову. Надеюсь, что это больше подходит – Simone 2010-11-25 10:12:02

ответ

1

Существует не простой способ ответить на этот вопрос без дополнительного контекста.

Какой вид приложения вы думаете (веб-сайт, рабочий стол и прочее)?

Как вы думаете, что было бы не в синхронизации?

Если у вас есть настольное приложение с открытым окном с открытым сеансом, в котором загружены данные, и вы меняете те же объекты в другом месте, конечно, БД будет не синхронизироваться, но вы можете использовать Refresh для обновления этих объектов ,

Если вы используете кэширование второго уровня NH и вы изменяете кэшированные объекты где-то в другом месте, содержимое кеша будет не синхронизировано, но вы можете использовать методы обновления или кэширования для обновления непосредственно из БД.

Во всех случаях NH обеспечивает поддержку оптимистического параллелизма с использованием свойств Version; они предотвращают модификации объектов, исключающих синхронизацию.

1

Да, объекты в вашем текущем сеансе будут не синхронизированы, так же, как DataSet/DataTable будет не синхронизироваться, если вы его извлечете, а другой процесс обновит одни и те же данные.

Смежные вопросы