2013-07-27 4 views
2

다양한 엔티티 (모델)에서 하나의보기를 작성해야하는 경우, 필요한 특정 특성을 포함하는 ViewModel로 별도의 클래스를 작성하는 것이 가장 좋으며, 특정 특성으로 다른 엔티티를 작성하고 해당 엔티티를 연관시키는 것이 더 좋습니다 ORM 디자이너의 나머지 엔티티와?여러 모델에 대한 하나의보기?

+0

public class MyModel { List<Student> MyStudents { get; set; } List<School> MySchools { get; set; } } 

당신은이 방법에 의해 필요한 복잡한 모델을 만들 수 있습니다 ... -model ratio가 가장 잘 작동합니다 (연결을 쉽게하기 위해 AutoMapper와 같은 것을 사용할 수 있습니다). –

+0

이것은 아마도 개인적인 취향에 달려 있습니다. 저는 뷰 모델에 2 개의 엔티티 모델을 추가 할 것입니다. DB 디자인을 복잡하게 만들므로 추가 엔티티를 만들지 않습니다. – James

+0

뷰 모델을 사용합니다. –

답변

1

메인 모델의 속성으로 선언하여 하나의 모델로 여러 모델을 병합 할 수 있습니다. 당신은 당신의 뷰 모델로 Student 클래스를 설정하면 당신이 당신의 학생의 School를 가져 오지 수,

public class Student 
{ 
    public int StudentID { get; set; } 
    public string StudentName { get; set; } 
    public int SchoolID { get; set; } 

    public virtual School StudentSchool { get; set; } 
} 

public class School 
{ 
    public School() 
    { 
     this.Students = new HashSet<Student>();    
    } 

    public int SchoolID { get; set; } 
    public string ASchoolName { get; set; } 

    public virtual ICollection<Student> Students { get; set; }   
} 

을이 경우에 당신은 아무것도 할 필요가 없습니다 : 다음과 같은 모델을 가지고 있다고 가정하자.

그러나 우리는 또한 모든 학교와 뷰 모델로보기에 모든 학생들이 필요하다고 가정하자. 이렇게하려면 다른 클래스를 생성하고 해당 속성으로 위의 클래스를 추가 : 1 뷰에 : 난 항상 하나 발견

관련 문제