POCO 도메인 모델과 NHibernate 리포지토리 레이어가있는 ASP.NET MVC 2 응용 프로그램이 있습니다. 내 도메인 모델에는 내 viewmodels에 대한 인식이 없으므로 automapper를 사용하여 viewmodel에서 entity 및 vice versa로 이동합니다.도메인 엔터티, DTO 및보기 모델
프로젝트에 WCF를 도입했을 때 (늦은 요구 사항) 연결되지 않은 객체를 처리해야하기 시작했습니다. 즉, NHibernate를 사용하여 데이터베이스에서 엔티티를 검색하고 해당 엔티티가 직렬화되면 연결이 끊어 지거나 관계없이 각 자식 컬렉션이로드되는지 여부와 상관없이 불필요한 데이터베이스 작업을 많이한다는 의미입니다.
이 글을 읽은 후에는 도메인 프로젝트 외부에서 엔티티를 공개하지 말고 대신 DTO를 사용해야합니다.
이 이유는 알고 있지만 구현 방법을 파악하는 데 문제가 있습니다.
ASP.NET MVC에서 viewmodel에서 DTO로 매핑하고, 서비스 계층을 통해 DTO를 전송하고, DTO에서 서비스 계층의 엔터티로 매핑합니까? 내 DTO는 어디에 정의해야합니까?
이것은 분명히 제 상황에 가장 잘 적용됩니다 - 저는이 문제에 대한 토론이 있다는 것을 깨닫지 못했습니다. 나는 내 서비스 계층을 넘어선 엔티티를 노출시키는 것이 슬픔의 원인이라는 것을 알았지 만 WCF를 프로젝트에 추가 할 때까지는 이러한 문제가 발생하지 않았습니다. – Mayo
당신의 애플리케이션이 분산되어 있지 않다면 (애플리케이션과 서비스 레이어 사이에 네트워크 갭이 없다) 문제가별로 없다고 생각합니다. 나는 응용 프로그램의 모든 레이어에서 엔티티를 사용하도록 권장하는 MS 기사를 보았습니다. 나는 또한 "alt.net"유형의 기사에서 위의 구조를 더 자주 보았고, 그것은 나를 위해 더 잘 작동합니다. 또한 응용 프로그램에 대한 내 생각을 단순화, 서비스는 진정으로 도메인 진입 점입니다. – Brook