Better approach to define Data annotation in entity or view model ?
I have entity and view model for the same entity and override the class with Data Annotation of entity framework. The question is i can add them without creating a separate model however i have concern about which one better approach?
Thank you in advance.
Entity
[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; }
}
View Model
[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; }
}