哪种方法更适合定义数据注释(View Model或Entity)?

时间:2018-06-14 12:26:49

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

在实体或视图模型中定义数据注释的更好方法是什么?

我有同一实体的实体和视图模型,并使用实体框架的数据注释覆盖该类。 问题是我可以在不创建单独模型的情况下添加它们,但我关注哪种方法更好?

提前谢谢。

实体

[Table("BatchInfo")]
    public partial class BatchInfo
    {
        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int BatchInfoId { get; set; }
        public string TRANCODE { get; set; }
        public string BatchId  { get; set; }
        public bool AMTFLAG { get; set; }
        public int POS { get; set; }

    }

查看模型

 [NotMapped]
    public class BatchInfoViewModel:BatchInfo
    {
        [Required(ErrorMessage = "Transaction Code is required")]
        [Remote("CheckTranCode", "BatchInfo",AdditionalFields = "BatchInfoId", ErrorMessage = "Transaction Code Already Exists!")]
        [RegularExpression("[A-Za-z0-9^]*", ErrorMessage = "Invalid Transaction Code")]
        [StringLength(3, ErrorMessage = "Transaction Code Should Not be More than 3 Characters")]
        public new string TRANCODE { get; set; }
        [Required(ErrorMessage = "Batch Code is required")]
        [RegularExpression("[A-Za-z0-9^]*", ErrorMessage = "Invalid Batch Code")]
        [StringLength(5, ErrorMessage = "Transaction Code Should Not be More than 5 Characters")]
        public new  string BatchId { get; set; }
        [Required(ErrorMessage = "Position is required")]
        [RegularExpression("^[0-9]*$", ErrorMessage = "Only Number is allowed")]
        [Range(0, int.MaxValue, ErrorMessage = "Invalid Position")]
        public new  int? POS { get; set; }
}

0 个答案:

没有答案