Я бы хотел поэкспериментировать с ActiveRecord для его великолепного управления областью сеансов / транзакций и его хорошей стратегией отображения атрибутов. Я обычно использую Nhibernate + Fluent Nhibernate для создания моего DAL.
Я застрял в этой странной проблеме: ActiveRecord не хочет загружать мои типы из сборки, которая находится в GAC ... в то время как FluentNhibernate может.
Вот код инициализации ActiveRecord, который терпит неудачу:
IDictionary properties = new Dictionary();
properties.Add("connection.driver_class", "NHibernate.Driver.SqlClientDriver");
properties.Add("dialect", "NHibernate.Dialect.MsSql2005Dialect");
properties.Add("connection.provider", "NHibernate.Connection.DriverConnectionProvider");
properties.Add("connection.connection_string", "MY_CONNECTION_STRING");
properties.Add("proxyfactory.factory_class", typeof(NHibernate.ByteCode.Castle.ProxyFactoryFactory).AssemblyQualifiedName);
InPlaceConfigurationSource source = new InPlaceConfigurationSource();
source.Add(typeof(ActiveRecordBase), properties);</p>
<p>ActiveRecordStarter.Initialize(
source,
typeof(Person),
typeof(Car)
);
Сборка, которая содержит «Person» и «Car», находится в GAC, в то время как Fluent Nhibernate может загрузить его (даже в ленивых коллекциях),
ActiveRecord не может загрузить и выдает следующее исключение:
à NHibernate.Cfg.XmlHbmBinding.Binder.ClassForFullNameChecked(String fullName, String errorMessage)
à NHibernate.Cfg.XmlHbmBinding.Binder.ClassForNameChecked(String name, Mappings mappings, String errorMessage)
à NHibernate.Cfg.XmlHbmBinding.ClassBinder.BindClass(XmlNode node, IDecoratable classMapping, PersistentClass model, IDictionary<code>2 inheritedMetas)
à NHibernate.Cfg.XmlHbmBinding.RootClassBinder.Bind(XmlNode node, HbmClass classSchema, IDictionary
2 наследственных мета)
NHibernate.Cfg.XmlHbmBinding.MappingRootBinder.AddRootClasses (XmlNode parentNode, IDictionary`2 наследуемый метас)
NHibernate.Cfg.XmlHbmBinding.MappingRootBinder.Bind (узел XmlNode)
NHibernate.Cfg.Configuration.AddValidatedDocument (NamedXmlDocument doc)
постоянный класс CFM.SearchServices.Finder.DAL.Entities.Person, CFM.SearchServices.Finder не найден
Есть ли способ заставить ActiveRecord дать полностью определенные имена NHibernate?