C# 如何在属性上使用ErrorMessage并在没有实体框架的情况下仍使用实体框架进行保存

C# 如何在属性上使用ErrorMessage并在没有实体框架的情况下仍使用实体框架进行保存,c#,asp.net-mvc,entity-framework,C#,Asp.net Mvc,Entity Framework,我有一个用户模型类,它有一个RepeatedPassword,此属性不应保存在数据库中,它只是使用ASP.NET MVC输入验证模型 我将数据注释[NotMapped]放在这个属性上,但是当我尝试保存时,我得到了一个异常,这个属性不应该为空 [NotMapped] [Required(ErrorMessage = "Passwords don't Match")] public string RepeatedPassword { get; set; } 我甚至尝试在我的上下文中添加以下内容:

我有一个用户模型类,它有一个
RepeatedPassword
,此属性不应保存在数据库中,它只是使用ASP.NET MVC输入验证模型

我将数据注释
[NotMapped]
放在这个属性上,但是当我尝试保存时,我得到了一个异常,这个属性不应该为空

[NotMapped]
[Required(ErrorMessage = "Passwords don't Match")]
public string RepeatedPassword { get; set; }
我甚至尝试在我的上下文中添加以下内容:

modelBuilder.Entity<User>().Ignore(a => a.RepeatedPassword);
modelBuilder.Entity().Ignore(a=>a.RepeatedPassword);
您可以使用属性来确保
重复密码
密码
相同。由于
Password
是必需的,因此定义中需要
RepeatPassword
,因此您可以从
RepeatPassword
中删除
[必需的]
属性

[Required]
[DataType(DataType.Password)]
[Display(Name = "Password")]
[StringLength(Constants.MaxPasswordLength, ErrorMessage = "{0} must be  between {2} and {1} characters long", MinimumLength = Constants.MinPasswordLength)]
public string Password { get; set; }

[DataType(DataType.Password)]
[Display(Name = "Confirm password")]
[Compare("Password", ErrorMessage = "The password and confirmation password do not match")]
public string ConfirmPassword { get; set; }