У меня есть приложение (web), в котором каждый пользователь, вошедший в систему, имеет эксклюзивный каталог (работает как частная база данных - , пожалуйста, не спрашивайте меня, почему, требования к проекту здесь не обсуждаются ) .
Итак, мне нужно сообщить NHiberante ISession
(или что-то подобное escope), которое является именем каталога и именем схемы, чтобы правильно построить полные имена объектов, так: catalog.schema.table
, catalog.schema.procedure
, ...
Смотри, что я избегаю иметь пул сессионных фабрик, я предпочитаю иметь только один SessionFactory и доступ отдельные каталоги, сообщающие NHibernate, какие из них использовать на каждом ISession
или аналогичном.
Я знаю, что могу перехватывать все операторы SQL с помощью IInterceptor.OnPrepareStatement()
, но этот подход должен анализировать во время выполнения все операторы, это не очень хороший подход.
Какие могут быть другие решения? А что лучше (производительность, ремонтопригодность, ...)?
Спасибо.