2011-11-23 4 views
0

현재 Windows 서비스를 개발 중이며 런타임에 MEF를 사용하여 모든 서비스 구성 요소를 작성하려고합니다. 데이터 액세스 모듈 (프로젝트)은 Entity Framework 4.1 및 도메인 서비스 클래스를 사용하여 엔터티 모델에서 CRUD 작업을 수행합니다.MEF를 사용하여 다른 프로젝트와 Entity Framework 모델 공유

문제는 DAL을 주 프로젝트의 작업자 클래스로 작성할 때 DAL 프로젝트 외부에서 모델을 공유하는 방법입니다. 이 exmaple 들어

는 DAL 계약 인터페이스

Function GetInspectionFaults() As IQueryable(Of InspectionFault) 

이 인터페이스는 참조를 필요로 DAL 프로젝트 (아닌 다른 계약 인터페이스를 포함하는 상기 공유/참조 된 프로젝트) 현재의 방법 중 하나이다 POCO 형의 엔티티 모델

어떻게 이러한 POCO 유형을 공유합니까?

답변

1

이 조금 더 많은 작업을 할 수 있지만, 당신은 조립 어쩌면 당신은 공유 어셈블리에있는 (보기 모델 만약에 당신) (일반/계약 모델의 세트를 별도로 것을 고려 할 수 있습니다). 이것은 귀하의 파트가 DAL에 명시 적으로 의존하지 않는 공통 유형 세트를 활용할 수있게합니다.

우려 사항을 분리하는 것과 관련하여 직접 DAL을 내보내는 것은 권장하지 않지만 리포지토리 패턴과 같은 것을 통해 추상화를 제공하는 것이 좋습니다. 리포지토리는 DAL과의 통신을 처리하고 도메인에서 뷰 모델로 매핑합니다.

필요할 때마다 리포지토리를 내보내고 가져올 수 있습니다. 즉, 파트가 특정 데이터 소스에 종속되지 않음을 의미합니다. 이렇게하면 코드가 더욱 강력 해지고 더 테스트 가능 해집니다.

관련 문제