所以,我的实体模型中有一个继承层次结构,如下所示:
class Member
{
public virtual Information Information { get; set; }
public long InformationId { get; set; }
//Other Props
}
class Staff : Member
{
}
class Guest : Member
{
}
class Information
{
public string Name { get; set; }
}
class StaffInformation : Information
{
public DateTime BirthDate { get; set; }
}
class GuestInformation : Information
{
public DateTime Expiry { get; set; }
}
鉴于此,我很难将会员信息投射到正确的孩子身上。例如,我想:
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; }
}
有什么建议吗?
答案 0 :(得分:1)
这是ViewModels的主要候选者。
您的实体模型和视图模型不必是一对一的。这是控制器(服务类,控制器,无论如何)的工作。从一个转换为另一个。
在一个视图上翻译BirthDate似乎很愚蠢..然后在另一个视图上翻转到期日期。这正是ViewModel的用途。