Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 使用实体框架和POCO进行ASP.NETMVC验证_Asp.net Mvc_Entity Framework_Poco - Fatal编程技术网

Asp.net mvc 使用实体框架和POCO进行ASP.NETMVC验证

Asp.net mvc 使用实体框架和POCO进行ASP.NETMVC验证,asp.net-mvc,entity-framework,poco,Asp.net Mvc,Entity Framework,Poco,我有一个关于使用MVC和POCO进行验证的最佳实践的问题。据我所知,最佳实践是拥有一个镜像POCO的ViewModel,然后在验证它(视图模型)后使用AutoMapper之类的工具将ViewModel解析为POCO 这一切都很好,但我想知道从POCO继承和仅过度删除我希望在视图模型中验证的属性是否有任何问题 POCO: 我的ViewModel可能如下所示: public class SectorDTO : Sector { [Required] [St

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

这一切都很好,但我想知道从POCO继承和仅过度删除我希望在视图模型中验证的属性是否有任何问题

POCO:

我的ViewModel可能如下所示:

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


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

我做了如下操作:

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类相同。
希望这有帮助

对我来说似乎很合理。我想说,如果它能从前到后编译并运行,那么就去吧。这个解决方案最终不起作用。你的更新解决方案就是我在你的案例中所做的。此外,为了验证,您可能需要尝试。
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;}
}