2013-01-31 4 views
0

내가 MVC와 질량 할당 문제를 해결뿐만 아니라 일을 올바른 방법으로 일에 대한 서로 다른 접근 방식에서 찾고 있었어요.MVC ViewModel 접근 및 매핑. 가장 좋은 방법

지금까지 내가 생각하는이 방법은 가장 다음과 같습니다 (단위 : 나는 또한 AutoMapper 살펴 보았다)

1 : 값 Injecter -이 꽤 잘 일을 할 것,뿐만 아니라에 의존 타사 라이브러리

2 : 도메인 모델에서 필요한 속성의 일부를 노출하는보기 모델 인터페이스로 UpdateModel 방법과 바인딩을 사용. http://www.codethinked.com/easy-and-safe-model-binding-in-aspnet-mvc

위의 실습 중 하나를 사용하여 전체 응용 프로그램 (위의 실습 중 하나를 실제로 찾으려고 일주일을 소비하지 않고)에 들어가기 전에이 두 가지 방법을 사용하는 실제 경험이있는 사람이 누구이며 하나는 당신이 권하고 싶습니다? 당신은 단지뿐만 아니라 할 것입니다 문자열/INT 속성 아무것도 일치하는 텍스트 만 필드가 간단한 시나리오에서

+1

이것은 주관적인 질문처럼 보인다 -에서 [자주 묻는 질문]를 확인하십시오 (http://stackoverflow.com/faq#dontask). – Mightymuke

+0

도움이되는 답변 주셔서 감사합니다. –

답변

0

.

하지만 당신은 모델합니다 (DB에서 FK)에서 개체를 일치하는 뷰 모델에 대한 특성을 가지고는 좀 더 복잡한 얻을 때, 당신은 몇 가지 개인 소품의 DB에서 데이터를 끌어와 그의 일부 속성을 매핑해야 할 수도 있습니다 ViewModel에 객체를 추가하면됩니다.

prodinner의 asp.net MVC 데모 응용 프로그램은 여기에서 다운로드 할 수 있습니다,이 방법을 설명하는 PDF 거기, 매퍼 클래스에 valueinjecter 사용 http://prodinner.codeplex.com/

0
나는이 주제에 수행 한 모든 읽기에서

일반 합의 엔터티 또는 도메인 모델 (데이터베이스에서)에서 뷰 모델로 이동하여 AutoMapper와 같은 자동화 도구를 사용하거나 원하는 도구가 자동화되어 있는지 확인하십시오.

당신은 그러나 입력 또는 다시 엔티티 또는 도메인 모델에 양식 모델 (바인딩 자동 모델을 통해 채워 객체)에서려고하는 경우에,이 문제를 자동화하지 않습니다. 올바르게 이동할 수있는 미끄러운 경사이므로 의도하지 않았거나 허용되지 않은 필드에 대한 자동화 도구 매핑이 발생할 수 있습니다. 이것 (그리고 다양한 구현들)에 대해 읽은 모든 것은 수동/명시 적으로 이것을하는 것이 가장 좋습니다. 꽤 간단하고 객체 초기화 프로그램을 사용하면 매우 쉽게 읽을 수 있습니다.

var person = new Person() 
{ 
    PersonId = model.PersonId, 
    FirstName = model.FirstName, 
    LastName= model.LastName 
} 

personService.UpdatePerson(person); 

그 라인에 뭔가가 있습니다.