我有一个现有数据访问层(类库)的解决方案,其中包含模型。我有web表单应用程序,它调用此库以使用存储过程对db执行crud操作。如果我想将此webform应用程序转换为MVC 3应用程序,那么迁移的方法应该是什么。我不想使用实体框架,并希望继续使用我的dataaccess层进行模型上的模型和操作,因为我的webservices项目正在使用相同的库。任何指针。
答案 0 :(得分:3)
确定的视图模型用于将数据移入/移出视图到业务/数据层。如果您已经在数据层中定义了模型,那么您可以让视图模型继承您的数据模型,或让视图直接使用它。
我建议继承并在视图模型中使用新属性来设置底层(继承)属性。这样,您就可以将验证属性添加到新属性中,并在客户端执行验证。服务器在设置继承的属性和更新数据库之前。
例如,如果您的数据图层有:
public class Person
{
public string Name {get; set;}
public string Email {get; set;}
}
然后在您的视图模型中,您可以使用:
public class VPerson : Person
{
[Required(ErrorMessage = "Name is required.")]
[StringLength(50, ErrorMessage = "Name cannot be longer than 50 characters.")]
public string VName { get; set; }
[Required(ErrorMessage = "Email is required.")]
[RegularExpression(Settings.EmailRegex, ErrorMessage = "Email Address is not valid.")]
[StringLength(50, ErrorMessage = "Email cannot be longer than 50 characters.")]
public string VEmail { get; set; }
public void SavePerson()
{
Name = VName;
Email = VEmail;
// update the DB
}
}
您可以直接使用不需要验证的属性(即DropDown列表)。
您实际上不需要继承,只能在SavePerson中调用您的数据层。