모든 도메인 로직과 도메인 객체 (예 : public class Project
, public interface IProjectRepository
)를 보유하고있는 Foo.Bar 어셈블리가 있습니다.은 도메인 객체와 다른 어셈블리에서 NHibernate 매핑을 정의합니다.
I은 또한 내 NHinbernate 데이터 액세스 레이어 느릅가 IProjectRepository
NHibernate에 기반 구현을 보유 역할 어셈블리 Foo.Bar.Data있다. Foo.Bar을 참조하고 Project.hbm.xml과 같은 매핑 파일을 포함합니다.
<?xml version="1.0" encoding="utf-8"?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="Foo.Bar"
namespace="Foo.Bar.Domain" default-lazy="false">
<class name="Project">
<id name="Id" column="ID" />
<property name="Customer" column="CUSTOMER" />
</class>
</hibernate-mapping>
불행하게도 나는 다음과 같은 예외를 얻을이 설정을 가진 :
NHibernate.MappingException을 : 없음 persister : Foo.Bar.Domain.Project
그리고 NHibernate에 로그 말한다 :
WARN NHibernate.Cfg.Configuration (null) - 어셈블리에서 매핑 된 문서가 발견되지 않음 : Foo.Bar, 버전 = 1.0.0.0, Culture = neutral, PublicKeyToken = null
매핑 파일을 에 추가하면 Foo.Bar 어김없이 모든 것이 잘 동작합니다. 하지만 실제로 내 도메인 어셈블리에 대한 데이터 액세스 또는 NHinbernate 구현 세부 정보는 필요하지 않습니다. 이것은 모범 사례가되는 경향이 있습니다, 그렇죠? 이런 종류의 설치가 좋은 방법이 아닌가?
NHibernate가 Foo.Bar.Data * 어셈블리에서 매핑 파일을 찾는 것을 어떻게 만들 수 있습니까?