1

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

4

1 回答 1

3

Sure View Models 用于将数据移入/移出视图到您的业务/数据层。如果您已经在数据层中定义了模型,那么您可以让视图模型继承您的数据模型或让视图直接使用它。

我建议在您的视图模型中继承然后使用新属性来设置底层(继承)属性。这样,您可以在设置继承的属性和更新数据库之前将验证属性添加到新属性并在客户端和服务器上强制验证。

例如,如果您的数据层具有:

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
    }
}

您可以直接使用不需要验证的属性(即下拉列表)。

您实际上不需要继承,只需在 SavePerson 中调用您的数据层。

于 2013-01-09T02:14:01.407 回答