【发布时间】:2014-09-19 05:49:58
【问题描述】:
我不确定这是否是一个错误,但在我看来。我首先使用的是 Entity Framework 6.1.1 代码,并且我有以下类:
public class User
{
public int Id { get; set; }
[Required]
[MaxLength(20)]
public string Username { get; set; }
[Required]
[MaxLength(200)]
public string Password { get; set; }
[Required]
public virtual Country Country { get; set; }
}
public class Country
{
[Key]
public int Id { get; set; }
[Required]
[MaxLength(3)]
public string CountryCode { get; set; }
[Required]
[MaxLength(20)]
public string CountryName { get; set; }
}
当我尝试使用以下代码更新用户密码时,出现错误:
User _user = db.Users.Find(Id);
_user.Password = Password;
db.Entry(_user).State = System.Data.Entity.EntityState.Modified;
db.SaveChanges();
错误: 一个或多个实体的验证失败。有关更多详细信息,请参阅“EntityValidationErrors”属性。验证错误是:Country 字段是必需的。"}
关键是,如果我与属性 _user.Country.Id 进行任何交互,它就会起作用。像这样:
User _user = db.Users.Find(Id);
_user.Password = Password;
Console.Write(_user.Country.Id.ToString());
db.Entry(_user).State = System.Data.Entity.EntityState.Modified;
db.SaveChanges();
知道这是一个已知的错误还是我做错了什么?
谢谢!
【问题讨论】:
标签: c# asp.net entity-framework entity-framework-6