2010-02-27 3 views
0

나는 그러나 나는이 라인에 문제가에 도착, 내 응용 프로그램의 인프라 계층 내 NHibernateUtil 클래스가이 들어 FluentNHibernate 구성을 사용하여 인프라 계층에 도메인 계층을 노출시키지 않으려면 어떻게해야합니까?

... 
.Mappings(m => m.FluentMappings.AddFromAssemblyOf<Computer>()); 

내가 인프라 계층에 도메인 층을 노출해야 할 일. 또한 도메인 계층은 매핑 (예 : ComputerMapping)으로 인해 인프라 계층에 대한 액세스 권한을 가지며 이로 인해 순환 종속성이 발생합니다.

도메인 계층에 대한 인프라 계층 액세스를 제공하지 않고 FluentNHibernate가 올바른 어셈블리에 액세스하도록 구성하는 방법은 무엇입니까?

답변

1

도메인 계층 내부에서 인프라 계층을 참조해야하는 이유를 이해할 수 없습니다. 보통은 이런 식을 구성해야

  • 도메인 함유 도메인 클래스 및

  • 데이터 액세스 레이어 도메인 레이어를 참조하고 (예를 들어, 소정의 공급자에 대한 인터페이스를 구현하는 이러한 클래스의 동작을 정의하는 인터페이스를 SQL qith NHibernate). 여기서 유창한 nhibernate 매핑 클래스와 설정을 사용하여 인터페이스 구현에 사용되는 ISessionFactory을 만들 수 있습니다. 이 인터페이스의 구현 만 노출하면 나머지는 모두 비공개입니다.

  • 주 응용 프로그램은 이전 두 계층을 참조합니다. 여기서는 객체 컨테이너를 사용하여 도메인 인터페이스의 적절한 구현을 선택할 수 있습니다.

당신이 도메인 인터페이스의 다른 구현과 다른 데이터 액세스 레이어를 작성하여 기본 응용 프로그램에 연결해야합니다 예를 들어 같은 엔티티 프레임 워크와 같은 데이터에 액세스하기 위해 다른 기술을 사용하기로 결정 나중에 경우 객체 컨테이너 (DI) 코드 만 수정합니다.

+0

빠른 응답을 보내 주셔서 감사합니다. 따라서 인프라 계층에 매핑을 배치하면 인프라 계층에서 도메인에 액세스 할 수 있습니까? – Laz

관련 문제