2013-05-23 2 views
2

Entity Framework를 사용하여 ASP.NET MVC를 처음 사용하고 간단한 로그인 시스템을 만들려고합니다. 지금 나는 UserProfile 모델을 갖고 있으며, 로그인 양식을 모델화하고 싶습니다.여러 목적으로 모델 사용

UserProfile.cs 만 사용자 이름과 암호가 필요합니다 내 로그인 폼으로

namespace MyProject.Areas.Admin.Models 
{ 
    public class UserProfile { 

     [Key] 
     public int UserID { get; set; } 

     [Required] 
     [Display(Name = "Username")] 
     public string Username { get; set; } 

     [Required] 
     [DataType(DataType.Password)] 
     [Display(Name = "Password")] 
     public string Password { get; set; } 

     public string FirstName { get; set; } 
     public string Surname { get; set; } 
     public string EmailAddress { get; set; } 
     public string Telephone { get; set; } 

    } 
} 

하는 LoginModel은 그 속성, 그것은 올바른 나를 예를 들어 (별도의 모델을 생성 할 수있다, 또는 나는 UserProfile 모델을 사용하는 contine해야합니까?

나를 로그인 제출을 모델링하기 위해 별도의 모델을 만드는 것이 더 나은 느낌,하지만 나는 그런 그들을 같은 테이블을 참조하고 같은 문제로 실행?

감사합니다.

답변

4

도메인 모델은 Model (도메인 모델)이지만 ViewModel 클래스는 하나만 있어야합니다.

ViewModel은 (모델에서) 특정 View/Action에 필요한 속성 만 갖습니다.

+0

내가 볼 (... AutoMapper, ValueInjecter 같은) 매핑 솔루션 보라, ModelViewModel (들) 사이의 매핑을 관리하려면! 확실히 더 많은 의미가 있습니다. 그래서 명확히하기 위해; 'LoginViewModel'을 만들고'UserProfile'에서'Username'과'Password' 속성을 뷰 모델로 매핑합니까? –

+0

@BigJoe 음, yes : UserProfile이 Model이고 LoginViewModel이 ViewModel입니다. 뷰에 표시하기 위해 데이터를로드하려면 Model에서 ViewModel로 매핑합니다. 뷰에서 오는 데이터를 업데이트해야하는 경우 ViewModel을 모델에 매핑합니다. –

0

보기 모델과 도메인 모델을 구별해야합니다. 흥미로운 토론은 here입니다.