0

私のモデルには4つのフィールドがあります

[Table("MUser")]
public class UserModel
{
  [Required]
  [ScaffoldColumn(false)]
  [Key, Column("ID", TypeName = "uniqueidentifier")]
  public int Id {get; set;}
  public string UserName {get; set;}
  [Required]
  [Column("Password", TypeName = "nvarchar")]
  public string Password {get; set;}
  [Required]
  [DataType(DataType.Password)]
  [Display(Name = "Confirm password")]
  [Compare("Password", ErrorMessage ="The password and conf password do not match.")]
  public string ConfirmPassword {get; set;}
}

注: ConfirmPasswordはデータベースフィールドの一部ではありません

だから保存しようとすると

[HttpPost]
[AllowAnonymous]
[ActionName("UserRegister")]
public ActionResult Register(UserModel model)
{
     if (ModelState.IsValid)
     {
        using (MyDbContext db = new MyDbContext())
        {
          db.User.Add(model);
          db.SaveChanges();
        }
     }
}

無効な列名ConfirmPasswordというエラーが発生しました

では、それをどのように解決するのでしょうか?

4

1 に答える 1

0

[NotMapped]属性を使用して、データベースに保持したくない列をマークします。

ForeverDebuggingで説明されている他のアプローチ

データベースの「非表示」列からの詳細ですが、Entity Framework での表示ではありません

于 2013-01-20T11:57:53.630 に答える