NHibernate에서 간단한 매핑 문제가있는 것처럼 보입니다. 그러나 몇 일 동안이 문제에 대한 해결책을 찾는데 어려움을 겪었습니다. VS2005에서 VB.NET을 사용하고 있습니다.NHibernate 버전 2.1.2.4000 매핑 안 새끼 문제
솔루션 : PsalertsIP
프로젝트 (조립) : 코어
폴더 데이터 (네임 스페이스 PsalertsIp.Core.Data)
이 저장소 클래스 예와의 통신을위한 인터페이스를 포함합니다 : PsalertsEventRepo를 다음과 같이 내 VS2005 솔루션 구조는 구현 IPsalertsEventRepo
폴더 도메인 (네임 스페이스 PsalertsIP.Core.Domain) 가 예 모든 POCO 도메인 객체와 관련 인터페이스를 포함합니다 : PsalertsEvent이 IPsalertsEvent를 구현을 다음과 같이
는 또한 어셈블리 '코어'아래에있는 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 설정을 테스트하는 간단한 차량이 필요하지만 단위 테스트가 아니라는 점을 인정하면서) 테스트가 실패하고 NUnit에서 다음 출력을 관찰합니다.
PsalertsIp.Tests.Data.PSALERTSEventRepoTests (TestFixtureSetUp) :
System.TypeInitializat ionException : 'Nested'의 형식 이니셜 라이저에서 예외가 발생했습니다.
----> NHibernate.MappingException : PsalertsEvent.hbm.xml
----> NHibernate.MappingException : 매핑 문서 컴파일 할 수 없습니다 영속 클래스의 Core.Domain.PsalertsEvent, 코어 찾을 수 없습니다
을 --- -> System.TypeLoadException : 'Core, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = null'어셈블리에서 'Core.Domain.PsalertsEvent'유형을로드 할 수 없습니다.
이 문제는 VS2005의 솔루션 구조와 관련이 있다고 생각되지만, 여러 다른 어셈블리/네임 스페이스 순열을 테스트 한 결과 아무 소용이 없습니다.