Я пытаюсь подключиться к нескольким базам данных в замковой активной записи (который использует NHibernate.) Мой конфигурационный файл выглядит следующим образом:Подключение к нескольким базам данных в Active Record
<configSections>
<section name="activerecord" type="Castle.ActiveRecord.Framework.Config.ActiveRecordSectionHandler, Castle.ActiveRecord" />
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<activerecord>
<config type="Navtrak.Business.Schemas.CommonSchemas.Models.NavtrakOperations.NavtrakOperationsDatabase`1, CommonSchemas">
<add key="hibernate.connection.connection_string" value="myconnstring" />
<add key="hibernate.connection.driver_class" value="NHibernate.Driver.SqlClientDriver" />
<add key="hibernate.dialect" value="NHibernate.Dialect.MsSql2005Dialect" />
<add key="hibernate.connection.provider" value="NHibernate.Connection.DriverConnectionProvider" />
</config>
<config type="Navtrak.Business.Schemas.CommonSchemas.Models.Errors.ErrorsDatabase`1, CommonSchemas">
<add key="hibernate.connection.connection_string" value="Data Source=myconnstring" />
<add key="hibernate.connection.driver_class" value="NHibernate.Driver.SqlClientDriver" />
<add key="hibernate.dialect" value="NHibernate.Dialect.MsSql2005Dialect" />
<add key="hibernate.connection.provider" value="NHibernate.Connection.DriverConnectionProvider" />
</config>
</activerecord>
А то у меня есть базовый абстрактный класс для каждой базы данных:
public abstract class NavtrakOperationsDatabase<T> : ActiveRecordBase<T>
{
}
И тогда каждый класс наследует от этого. Я тогда инициализацией активную запись так:
ActiveRecordStarter.Initialize(typeof(SimpleModel).Assembly, ActiveRecordSectionHandler.Instance);
Что дает мне ошибку:
Не удалось найти диалект в конфигурации
Если изменить код активации на это:
ActiveRecordStarter.Initialize(
ActiveRecordSectionHandler.Instance,
typeof(NavtrakOperationsDatabase<>),
typeof(ErrorsDatabase<>)
);
Затем я получаю следующее сообщение об ошибке:
У вас есть доступ к классу ActiveRecord, который не был правильно инициализирован. Есть два возможных объяснения: вызов в ActiveRecordStarter.Initialize() не включал Navtrak.Business.Schemas.CommonSchemas.Models.NavtrakOperations.Application class, или что Navtrak.Business.Schemas.CommonSchemas.Models.NavtrakOperations.Application class не украшен атрибутом [ActiveRecord].
Я, очевидно, не хочу включать каждый класс в функцию Initialize.
Любые идеи?
какую версию activerecord вы используете? –
@Mauricio Scheffer - Я использую последнюю dll для .NET 4 (я думаю), поскольку я скачал их примерно неделю назад. – Justin
@Justin - Могли бы вы обновить, чтобы показать окончательный синтаксис всего, что вы использовали? Я пытаюсь сделать то же самое, но не могу пройти мимо описанной вами ошибки. – Rake36