У нас есть WebServer (на основе Orchard CMS ) и две базы данных SQL Server: главная (операции чтения-записи) и ведомая (только операции чтения).Базы данных синхронизируются путем репликации.WebServer использует NHibernate в качестве ORM.
Мы хотим разделить нагрузку между этими двумя базами данных по следующей схеме.Во время обработки запроса у нас должно быть:
- ИСПОЛЬЗОВАНИЕ ведомого
- ВЫБРАТЬ ИЗ T1
- ВЫБРАТЬ ИЗ T2
- ИСПОЛЬЗОВАТЬ мастер
- НАЧАЛО СДЕЛКИ
- ОБНОВЛЕНИЕ T1
- ОБНОВЛЕНИЕ Т2
- СОВЕРШЕНИЕ СДЕЛКИ
Итак, идеяэто переключиться на базу данных master перед первым оператором изменения (UPDATE, DELETE, INSERT).Важное замечание: в существующей инфраструктуре для организации транзакций используется класс .Net TransactionScope .
Итак, как этого добиться с помощью NHibernate?