2011-08-01 1 views
0

ViewModels를 사용하는 방법이 확실하지 않으므로 다음 문제에 대한 도움이 필요합니다.AutoMapper와 EF를 사용하여 ViewModel을 어떻게 디자인하고 저장해야합니까?

온라인 설문 조사를 만들었습니다. 사용자는 객관식 질문을 만들 수 있습니다. 내보기에

[Question] 
int category_id { get; set; } // The category the question belongs to 
int type_code { get; set; } // The type of question (I.E Multiple Choice) 
string question_wording { get; set; } // The question itself 
bool visible { get; set; } // Visiblity 
int question_number { get; set; } // The number of the question 
string help_text { get; set; } // Help text if the user doesnt understand the question 

[Multiple_Choice_Question] 
int choice_number { get; set; } // The order in which the MCQ answer possibility is shown 
int choice_wording { get; set; } // The MCQ answer possibility 
string help_text { get; set; } // help_text if the user doesnt understand the answer possibility 

// This is a cross-reference table in my database that maps questions with choice possibilities 

[Ref_Multiple_ChoiceAnswer] 
int question_id { get; set; } 
int mcq_id { get; set; } 

내가이 질문을 동시에 선택 가능성 (Multiple_Choice_Question)을 생성 할 수 있어야합니다 : 난 일이에 사용하는 도메인 기관은 다음과 같습니다. 사용자는 선택 상자를 텍스트 상자에 씁니다. 각 입력란은 새 줄로 구분됩니다.

Cat 
Dog 
Mouse 

같은

지금 두 단체와 협력하는 메신저 난 그냥 내 뷰 모델에 필요한 모든 속성을 넣어해야합니까? 각 Answer 가능성은 내 데이터베이스의 새로운 행이며 View에서는 문자열 (텍스트 상자의 텍스트)로 다시 전송됩니다. 어떻게 해결할 수 있습니까?

[HttpPost]의 AutoMapper를 사용하여 질문의 속성을 새 Question Object로 바인딩하고 Multiple_Choice_Question Object를 사용하여 답변을 바인딩하는 방법은 무엇입니까? 또한 Ref_Multiple_ChoiceAnswer 테이블에서 두 개의 새 엔티티를 매핑하는 가장 좋은 방법은 무엇입니까?

미리 감사

답변

0

에 당신은보기 모델의 소품을 결합 안된다. 그것은 디자인에 의한 것입니다.

이것은 디자인을 oop쪽으로 더 유도합니다.
상태는 호출 된 동작을 통해 변경되어야합니다.

예. 대신 :

question.visible=questionViewModel.visible; 

당신은 사용해야합니다 :

"바인딩 속성"종류 A가 말이 안되는 이유
class QuestionController{ 
ActionResult Hide(int question){ 
    var q=find(question); 
    q.Hide(); 
    return q.As<QuestionViewModel>(); 

} 
} 
class Question{ 
    void Hide(){ 
    Visible=false; 
    } 
} 

.

+0

답변 해 주셔서 감사합니다. 그것은 정확히 내가 찾던 해답이 아니지만 당신이 응답 한 유일한 사람인 것처럼 대답으로 표시 할 것입니다. – Nanek

+0

@Nanek http://bit.ly/p8shJh는 Jimmy-Automapper 자신의 글에서 retweeted –