0

mvc에서 먼저 엔티티 프레임 워크 코드를 구현할 때보기 제한을 뷰 모델과 분리합니까? 이것은 데이터베이스가 먼저 생성 되었기 때문에 모델을 생성하기 위해 모델을 분리하는 이유를 알 수 있습니다. 그러나 코드를 먼저 작성하는 것이 어떻습니까?mvc에서 뷰 모델을 사용하여 엔티티 프레임 워크 코드를 먼저 사용 하시겠습니까?

다음 질문은 뷰 모델을 다른 폴더로 분리해도 괜찮습니까? 기본적으로 asp.net은 MVC이므로 내부에 뷰 모델이 없습니다

< ---이 모델 호출은 무엇입니까? 데이터 모델? 도메인 모델? 비즈니스 모델?

public class Student 
    { 
     public int ID { get; set; } 
     [StringLength(250)] 
     public string LastName { get; set; } 
     public string FirstMidName { get; set; } 
     public DateTime EnrollmentDate { get; set; } 
    } 

보기 모델

public class Student 
    { 
     public int ID { get; set; } 
     [MaxLength(250)] 
     [Required] 
     public string LastName { get; set; } 
     [Required] 
     public string FirstMidName { get; set; } 
     [Required] 
     public DateTime EnrollmentDate { get; set; } 
    } 

답변

0

첫 번째 질문 :

그냥 아래처럼 분리해서하는 부분 클래스와 메타 데이터을 사용해야합니다

[MetadataType(typeof(StudentMD))] 
public partial class Student 
{ 
    public class StudentMD 
    { 
    public int ID { get; set; } 
    [MaxLength(250)] 
    [Required] 
    public string LastName { get; set; } 
    [Required] 
    public string FirstMidName { get; set; } 
    [Required] 
    public DateTime EnrollmentDate { get; set; } 
    } 
} 

두 번째 질문 :

은 폴더 이름 "보기 모델"나도 내 프로젝트에서 그것을했다

을 추가 OK입니다!

+0

메타 데이터 주석을 사용하여 분리하는 것이 무엇인지 알 수 있습니까? 또한, 코드 (뷰 모델에서 분리 된 모델)에 대해 그런 식으로 작업하는 경우 복제하지 않을 것입니다. 데이터베이스에서 먼저 데이터베이스가 변경되면 클래스가 생성되기 때문에 먼저 코드에서 직접 수정합니다. – myfinite

+0

첫 번째 질문 : 데이터베이스를 수정하고 DB에서 코드를 사용하여 변경 사항을 수정하기 때문입니다. [DisplayName ("fullname")]과 같은 일부 Datannotation이 누락됩니다. 두 번째 : 메타 데이터 주석을 사용하면 중복되지 않습니다. –

1

mvc보기에서 사용되는 모델은 viewmodel입니다.
데이터베이스에 지속되는 모델은 도메인 모델입니다.

도메인 모델에는 클라이언트에서 사용할 필요가없는 몇 가지 속성이있을 수 있습니다.
귀하의 서비스 레이어는 클라이언트에 DTO (데이터 전송 객체)을 반환해야하며에 뷰 모델 DTO 을 매핑 할 수 있습니다.