2011-03-10 3 views
0

MVC 앱이 있고 뷰에 데이터를 전송하기 위해 독점적으로 DTO를 사용하기 시작했습니다. 이 과정을 쉽게하기 위해 AutoMapper를 사용하고 있습니다.복잡한 페이지에 대해 DTO를 매핑하는 올바른 방법

많은 주문이있는 고객이 있다고 가정 해보십시오. 간단한 고객 개요 페이지를 표시하기 위해 고객 이름, 주소 등을 매핑하는 간단한 DTO 클래스로 AutoMapper를 사용할 수 있습니다. 주문을 매핑하려면 AutoMapper 목록을 Customer.Orders의 < >보다 간단한 목록 <CustomerOrderDTO>으로 매핑 할 수 있습니다.

나는 이제 같은 관점에서 모두를 원하는 페이지에 머물러 있습니다. 고객 이름과 전화 번호, 그리고 주문 목록이있는 간단한 제목 일 것입니다. 어떤 경우에는 부분적인 것이 완벽한 해결책이지만 전부는 아닙니다.

그래서 내 질문은이 페이지의 DTO가 어떻게 나타나야하는지, 어떻게 맵핑되어야하는지 (가급적이면 AutoMapper를 사용하는 것)입니다. 내 연구에서 지금까지 AutoMapper가 내장 된 enumerables를 어떻게 매핑 할 수 있는지를 알 수 없다. 당신이 당신의 매핑을 만들 때

답변

0

는 컬렉션/enumerables을 무시하고 단지 예를 CreateMap<Order, CustomerOrderDTO>()

당신은 매핑을 실행

에 대한 간단한 객체에 간단한 객체를 매핑, 당신은 컬렉션을 사용할 수 있으며 AutoMapper는 옳은 일을 단지 것 예를 들어 Map<IEnumerable<Order>, IEnumerable<CustomerOrderDTO>>()

객체를 매핑하는 경우는 예를 들어 Customer 각 하나는 Order뿐만 당신이 고객의 개체에 대한 CreateMapCreateMap했던대로, 주문 수집의이 CustomerDTO에 컬렉션을 포함 개체, enumerable은 고객 매핑에서 특별히 무시되도록 설정하지 않는 한 자동으로 매핑됩니다.

+0

감사합니다. 개체 내에 포함 된 컬렉션을 매핑하는 방법을 놓치고 있었지만 두 매핑을 먼저 만드는 경우에 불과합니다. – user654384

관련 문제