使用实体框架和POCO进行ASP.Net MVC验证

时间:2012-07-31 01:15:52

标签: asp.net-mvc entity-framework poco

我有一个关于使用MVC和POCO进行验证的最佳实践的问题。据我所知,最佳实践是拥有一个镜像POCO的ViewModel,然后使用类似AutoMapper的东西在ViewModel(视图模型)验证后将其解析为POCO。

这一切都很好,但是我想知道从POCO继承是否有任何问题,而且仅仅想要在View模型中验证属性?

POCO:

public partial class Sector
    {
        public virtual int SectorId { get; set; }

        public virtual string Name { get; set; }
    }

我的ViewModel可能如下所示:

public class SectorDTO : Sector
    {
         [Required]
         [StringLength(10)]
         public override string Name {get; set;}
    }

更新

此解决方案最终无法正常工作,主要是由于我的业务层和数据层的设置方式。我的解决方案是创建一个包含所有验证的DTO的ViewModel,然后使用AutoMapper将对象更改回POCO类型。

1 个答案:

答案 0 :(得分:0)

我确实喜欢以下内容:

public partial class SectorMetaData
{
    [Required(ErrorMessage="Required Filed")]
    public int SectorId{ get; set;}
    [Required(ErrorMessage="Required Filed")]
    public string Name{get; set;}

}

[MetadataType(typeof(SectorMetaData))]
public partial class Sector
{
    public int SectorId{ get; set;}
    public string Name{get; set;}
}

此类应与POCO类相同。 希望这有帮助!