Сессия nhibernate для разных серверов баз данных с одним и тем же объектом - PullRequest
1 голос
/ 10 ноября 2009

Мы используем две базы данных в нашем веб-приложении. Один находится в США, а другой в Канаде. Вы должны видеть только данные, основанные на вашей стране. Теперь я думаю, что возникнет проблема с созданием объектов SessionFactory, поскольку объекты уже созданы для США. Теперь, когда nHibernate пытается создать фабрику для базы данных CAN с теми же сущностями, я получаю следующую ошибку:

Не удалось найти параметр строки подключения (задайте connection.connection_string или connection.connection_string_name недвижимость)

Как мне решить эту проблему?

Обновление: Вот трассировка стека:

в NHibernate.Connection.ConnectionProvider.Configure (настройки IDictionary 2 settings) at NHibernate.Connection.ConnectionProviderFactory.NewConnectionProvider(IDictionary 2) в NHibernate.Cfg.SettingsFactory.BuildSettings (свойства IDictionary`2) в NHibernate.Cfg.Configuration.BuildSettings () в NHibernate.Cfg.Configuration.BuildSessionFactory () в FluentNHibernate.Cfg.FluentConfiguration.BuildSessionFactory () в d: \ Builds \ FluentNH \ src \ FluentNHibernate \ Cfg \ FluentConfiguration.cs: строка 93

Ответы [ 2 ]

0 голосов
/ 11 ноября 2009

Просто идея здесь, но учитывая, что ваш DAL подключается к двум разным источникам данных в двух разных наборах инфраструктуры, если вы не хотите раскрутить один экземпляр сеанса NHibernate для CAN и один экземпляр сеанса NHibernate для США ... затем объединить результаты после запроса? Использование одного сеанса для запроса двух отчаянных источников данных не похоже на правильный подход ... даже если это физически возможно. Я думаю, здесь должно применяться разделение интересов.

представление -> уровень службы | -> имя_проекта.dataAccess.usa.EntityRepository | -> projectName.dataAccess.can.EntityRepository

0 голосов
/ 10 ноября 2009

Вы можете попробовать NHibernate.Shards. Он все еще находится в стадии разработки, но, вероятно, работает на вас. http://nhcontrib.svn.sourceforge.net/svnroot/nhcontrib/trunk/src/NHibernate.Shards/

...