Я пытаюсь подключиться к нескольким базам данных в активной записи замка (которая использует nhibernate.) Мой файл конфигурации выглядит следующим образом:
<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>
А затем у меня есть базовый абстрактный класс для каждой базы данных, напримерthis:
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 или что класс Navtrak.Business.Schemas.CommonSchemas.Models.NavtrakOperations.Application.не имеет атрибута [ActiveRecord].
Я, очевидно, не хочу включать каждый класс в функцию Initialize.
Есть идеи?