2012-06-18 3 views
1

모든 도메인 로직과 도메인 객체 (예 : 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 * 어셈블리에서 매핑 파일을 찾는 것을 어떻게 만들 수 있습니까?

답변

3

내가 할 일은이 <session-factory> 요소 내에 내 hibnerate 구성에

<mapping assembly="Foo.Bar.Data"/> 

을 추가 할 것으로 밝혀졌습니다.

관련 문제