У меня есть то, что кажется простой проблемой картирования в NHibernate, однако я уже несколько дней пытаюсь найти решение этой проблемы и буду признателен за некоторую помощь. Я использую VB.NET под VS2005. Моя структура решения VS2005 выглядит следующим образом:
Решение: PsalertsIP
Проект (сборка): Core
Данные папки (Пространство имен PsalertsIp.Core.Data)
Содержит интерфейсы для связи с классами репозитория
Пример: PsalertsEventRepo Реализует IPsalertsEventRepo
Домен папки (Пространство имен PsalertsIP.Core.Domain)
Содержит все объекты домена POCO и связанные интерфейсы
пример: PsalertsEvent Внедряет IPsalertsEvent
Также под сборкой 'Core' находятся файл конфигурации NHibernate и файл отображения для класса PsalertsEvent, который выглядит следующим образом:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="Core"
namespace="Core.Domain">
<class name="PsalertsEvent" table="Source_table" lazy="true">
<id name="Id" column="Id" type="long" unsaved-value="0"
access="field.camelcase-underscore">
<generator class="native" >
<param name="sequence">My_Oracle_Sequence</param>
</generator>
</id>
<property name="Substation" column="Field1" />
<property name="BusbarId" column="Field2" />
<property name="PlantId" column="Field3" />
<property name="AlarmName" column="Field4" />
<property name="AlarmStatus" column="Field5" />
<property name="EventTime" column="Field6" />
</class>
</hibernate-mapping>
Когда я пытаюсь выполнить простое тестирование среды NHibernate с помощью NUnit (обратите внимание, что это не модульное тестирование, однако для тестирования установки NHibernate понадобилось простое средство), тест не пройден, и я наблюдаю следующий вывод в единицах:
PsalertsIp.Tests.Data.PSALERTSEventRepoTests (TestFixtureSetUp):
System.TypeInitializationException: инициализатор типа для 'Nested' выдал исключение.
----> NHibernate.MappingException: не удалось скомпилировать документ сопоставления: PsalertsEvent.hbm.xml
----> NHibernate.MappingException: постоянный класс Core.Domain.PsalertsEvent, Core не найден
----> System.TypeLoadException: не удалось загрузить тип 'Core.Domain.PsalertsEvent' из сборки 'Core, версия = 1.0.0.0, культура = нейтральная, PublicKeyToken = null'.
Я подозреваю, что проблема может быть связана со структурой решения в VS2005, однако я протестировал несколько различных перестановок сборки / пространства имен, но безрезультатно.