Автономный режим NHibernate - PullRequest
       0

Автономный режим NHibernate

0 голосов
/ 11 февраля 2011

У меня есть вопрос Есть ли способ сделать это в NHibernate: Если база данных находится в автономном режиме (ошибка подключения или что-то еще), чтобы сохранить все изменения локально или где-то еще, и когда база данных подключается, повторно синхронизируйте эти две базы данных.

Как это сделать? Спасибо

Ответы [ 2 ]

3 голосов
/ 11 февраля 2011

Это выходит за рамки NHibernate.

Вы можете сделать это на уровне более высокого уровня (абстракция поверх Session, которая ловит ошибки и сохраняет в другом месте) или на уровне более низкого уровня (реализацияIDriver, который скрывает детали подключения).

Оба сложны.Лучше выбрать базу данных с поддержкой репликации (SqlServer является одним из примеров), всегда работать с локальной базой данных, и позволить механизму репликации иметь дело с синхронизацией.

Конечно, это имеет дополнительную проблему управления конфликтами(в любом случае это происходит во всех шаблонах)

0 голосов
/ 11 февраля 2011

Согласитесь с Диего, который выходит за рамки NH.После этого можно было бы использовать шаблон команд для обновления запросов на изменение и ставить каждый запрос в очередь в надежную очередь (например, MSMQ) и выполнять фактическое обновление БД в конце этой очереди.Когда клиентское приложение находится вне сети, в очереди сохраняются изменения, которые сбрасываются, как только соединение возвращается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...