从模型中删除数据注释并将它们放在单独的类中

时间:2013-03-18 13:45:10

标签: c# asp.net-mvc entity-framework

您好我正在开发一个asp.net mvc应用程序,我被要求从我的模型中删除数据注释并将它们放在一个单独的类中。我想到的第一件事就是使用Fluent API来实现这一点。

经过一番研究后,我意识到Fluent API只能用于代码优先方法,所以我不知道如何解决这个问题。

我正在使用数据库第一种方法。

这是我的一个模型的样子:

public class BookModel
{
    public int Id { get; set; }

    [Required]
    public string Name { get; set; }

    [Required]
    public string Author { get; set; }

    [Required]
    [DataType(DataType.MultilineText)]
    public string Description { get; set;}

    [Required]
    [DisplayFormat(DataFormatString = "{0:d}" , ApplyFormatInEditMode=true)]
    public DateTime PublicationDate { get; set; }

    [Required]
    public int CategoryId { get; set; }

    [Required]
    [DataType(DataType.Currency)]
    [DisplayFormat(DataFormatString="{0:c}")]
    public decimal Price { get; set; }

    public string BookUrl { get; set; }
}

所以有人能指出我正确的方向来解决我的问题吗?

2 个答案:

答案 0 :(得分:2)

看Buddy Classes的概念

Model Validation

Model validation 2

答案 1 :(得分:1)

您可以创建将(仅)表示每个视图的ViewModel类。您可以在它们上添加验证逻辑。

如果你想让你的班级看起来干净,并且在一个单独的班级中移动验证逻辑,那么你可以拥有一个用于保存数据注释的部分类,或者validation class