我有一个关于使用 MVC 和 POCO 进行验证的最佳实践的问题。据我所知,最佳实践是拥有一个反映 POCO 的 ViewModel,然后在验证 ViewModel(视图模型)后使用 AutoMapper 之类的东西将 ViewModel 解析为 POCO。
这一切都很好,但我想知道从 POCO 继承和仅删除我希望在视图模型中验证的属性是否有任何问题?
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 类型。