문제

내 저장소에서는 LINQ 엔티티 쿼리에서 도메인 객체에 과제를 만들고 있습니다. 그런 다음 저장소에서 반환 된이 객체에 작용할 수있는 서비스 계층이 있습니다.

내 도메인 객체가 이와 같은 저장소에 있어야합니까? 아니면 내 리포지토리가 엔티티 및 데이터 액세스로 제한되어야하고 대신 내 서비스 계층이 도메인 객체에 할당되도록해야합니까?

저장소에서 모든 할당을 수행하는 것이 더 쉬운 것처럼 보이지만 이제는 데이터베이스와 도메인 객체의 차이점이 분명하지 않습니다. 여기에 올바른 연습은 무엇입니까? 티아

도움이 되었습니까?

해결책

IMO 앱이 상대적으로 단순하고 데이터 액세스가 진행되는 것을 상상할 수 없다면 저장소에서 Asignments를 만들 수 있습니다. 그러나 앱이 미래에 더욱 복잡해 지거나 데이터 액세스를 변경하려는 경우이 기능을 리포지토리에서 벗어나게 할 수도 있습니다.

리포지토리 및 서비스 계층에 할당 된 앱을 수행했으며 다른 하나는 별도의 변환 계층을 가졌습니다 (한 번의 변환이 아니었고 객체는 복잡했습니다).

모범 사례에 대해 기억해야 할 한 가지, 거기에 도움이 될 것입니다. 만약 그것이 더욱 감동적으로 만들면 그것을 사용하지 마십시오.

다른 팁

나는 그것을 좋아하지 않았다. 그러나 지금은 보통 뒤돌아 보지 않습니다. 기본적으로 구조화 된 외부 데이터 소스로 변경 해야하는 경우 저장소 코드의 구현과 함께 새 매핑을 설정하고이를 수행 할 수 있다는 것입니다.

데이터 매핑에 관한 것입니다. 이 링크 확인 : http://www.martinfowler.com/eaacatalog/repository.html

또한이 관련 질문을 확인하십시오. 반환 된 물체의 Irepository 혼란. 나는 비슷한 맵퍼를 사용했지만 queryable 레벨에서 작동하게 만들었습니다.이 수준은 매핑 후 도메인 객체로 작업하는 동안 꽤 흥미로운 작업을 수행 할 수있었습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top