2010-09-15 2 views
0

Я работаю с nHibernate.Добавление подписанной сборки в nHibernate

У меня есть сборка (например: DAL.dll), которая содержит файлы сопоставления (.hbm.xml) и сущности (.cs). У этой Ассамблеи есть сильное имя (подписанное).

Я создал консольный проект, который ссылается на узел DAL (DAL.dll).

Когда я пытаюсь привести в действие конфигурацию, она не работает при загрузке моей сборки DAL.

Ошибка заключается в следующем:

NHibernate.MappingException: Не удалось скомпилировать отображение документа: DAL.Mappings.Cat.hbm.xml NHibernate.MappingException: стойкий класс DAL.Cat, DAL не найден

Это код консольного приложения:

     Configuration cfg = new Configuration(); 
         cfg.SetProperty(Environment.ConnectionDriver, "NHibernate.Driver.SqlClientDriver"); 
         cfg.SetProperty(Environment.ConnectionString, dsn); 
         cfg.SetProperty(Environment.Dialect, typeof(MsSql2005Dialect).AssemblyQualifiedName); 
         cfg.SetProperty(Environment.ProxyFactoryFactoryClass, typeof(NHibernate.ByteCode.Castle.ProxyFactoryFactory).AssemblyQualifiedName); 
         cfg.SetProperty(Environment.ShowSql, "true"); 
         cfg.SetProperty(Environment.ConnectionProvider, typeof(DriverConnectionProvider).AssemblyQualifiedName); 
         cfg.AddAssembly(typeof(DAL).Assembly); 

проблема заключается в том, что hbm.xml е Ильз ссылаются на объекты, которые, как:

<class name="DAL.Cat,DAL"> 

Есть ли другое решение, чем ссылки на каждый класс с их полным именем (с помощью ключа и т.д.)

Спасибо!

ответ

0

Немного уборщик способ определения отображений, которые могут помочь вам:

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" 
        namespace="DAL" 
        assembly="DAL assembly fully qualified name"> 
    <class name="Cat"> 
    ... 

Однако, это должно работать, даже если имя сборки не квалифицирован. Попробуйте разные комбинации и посмотрите, что произойдет.

+0

Это именно то, что я ожидаю! Большое спасибо. – Antoine

Смежные вопросы