将现有数据模型用于MVC3应用程序

时间:2013-01-09 01:32:13

标签: c# asp.net asp.net-mvc-3

我有一个现有数据访问层(类库)的解决方案,其中包含模型。我有web表单应用程序,它调用此库以使用存储过程对db执行crud操作。如果我想将此webform应用程序转换为MVC 3应用程序,那么迁移的方法应该是什么。我不想使用实体框架,并希望继续使用我的dataaccess层进行模型上的模型和操作,因为我的webservices项目正在使用相同的库。任何指针。

1 个答案:

答案 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中调用您的数据层。