제가 이해 하듯이, 도메인 모델은 데이터 (집계 루트) 만 설명하는 클래스입니다. 이들은 POCO이며 외부 라이브러리를 언급하지 않습니다 (특별한 것은 없음).ASP.NET MVC : ViewModel 객체를 반환하는 메카닉은 무엇입니까?
반면 모델보기는 SelectList
과 같은 모든 인터페이스 관련 개체는 물론 도메인 모델 개체를 포함하는 클래스입니다. ViewModel에는 using System.Web.Mvc;
이 포함됩니다.
리포지토리는 데이터베이스에서 데이터를 가져와 도메인 모델 개체를 통해 피드를 제공합니다. 데이터베이스에서 뷰 모델 객체를 생성하는 기계공이나 장치는 무엇입니까? 데이터베이스 액세스 권한이있는 팩토리일까요? Repository에 System.Web.Mvc와 같은보기 특정 클래스를 피 흘리게 하시겠습니까? 다른 것? 당신이 도시의 드롭 다운 목록을 경우
예를 들어, 당신은 당신의 DomainModel 참조 바로 옆에, 당신의보기 모델 객체의 루트에 selectList의 객체를 참조 할 것 :
public class CustomerForm {
public CustomerAddress address {get;set;}
public SelectList cities {get;set;}
}
성읍이 와야한다 데이터베이스에서 선택 목록 오브젝트의 양식으로되어 있어야합니다. 특별한 도시를 추출하기 위해 특별한 Repository 메소드를 생성하지 말고, 여분의 두 번째 SelectList 객체 만 생성하면 올바른 데이터 유형을 가질 수 있기를 바랍니다.
드롭 다운 목록을 채우는 것과 같은 추가 데이터를 처리 할 때이 데이터를 저장소에서 가져 오나요? "도시 목록"과 같은 "마이크로"도메인 모델을 처리하기 위해 특수 도메인 모델을 만드십니까? 아니면 db 액세스 권한이있는 Factory와 같은 다른 패턴이 있습니까? –
스티브 미첼로 티 (Steve Michelotti)가 작성한 위대한 글을 읽었습니다. http://geekswithblogs.net/michelotti/archive/2009/10/25/asp.net-mvc-view-model-patterns.aspx –