1

그래서, 내가 벨으로 내 엔티티 모델의 상속 계층 구조가의 속성 유형을 상속 지정합니다. 예를 들어, 내가 원하는 :는 특정 자식으로

TextBoxFor(model => model.Staff.StaffInformation.BirthDate) 

하지만 내가 할 수있는 것은 :

TextBoxFor(model => (Entities.StaffInformation)(model.Staff.Information).BirthDate) 

가 나는 아이에 정보의 유형을 지정할 수 있습니까? 다음과 같은 몇 가지 가짜 :

class Staff : Member 
{ 
    public StaffInformation Information { get; set; } 
} 
class Guest : Member 
{ 
    public GuestInformation Information { get; set; } 
} 

의견이 있으십니까?

답변

1

이것은 ViewModels의 주요 후보입니다.

엔티티 모델과보기 모델이 일대일 일 필요는 없습니다. 이것이 컨트롤러 (서비스 클래스, 컨트롤러 등)의 역할입니다. 하나에서 다른 것으로 변환하십시오.

한보기에서 생년월일을 업 캐스트하는 것이 어리석은 것처럼 보입니다. 다른보기에서 만료일을 업 캐스트합니다. 이것은 정확히 ViewModel의 목적입니다.

+0

의심의 여지가 없지만 동의합니다. 엔티티에서 또 다른 솔루션을 찾고 있습니다. 찾으면 엔티티를 VM으로 변환 할 필요가 없으며 그 반대도 마찬가지입니다. 맞습니까? –

+0

그래, 그렇지만 나중에는 확장을 생각해. 보기에서 모델에 대한 유효성 검사가 갑자기 필요한 경우 어떻게해야합니까? 이제 DataAnnotations가 모델에 직접 연결되어 있습니다. 그들은 심지어 POCO입니까? 아니면 생성 된 것입니까? 당신은 앞으로 생각할 것입니다. 그렇지 않으면 그것은 당신을 물기 위해 다시 올 것입니다. –