当我在迁移步骤中尝试 update-database
时出现以下错误(打开包管理器控制台窗口并输入"update-database"命令)
System.Data.Entity.Validation.DbEntityValidationException:一个或多个实体的验证失败 . 有关详细信息,请参阅“EntityValidationErrors”属性 .
我在 Movie
类中添加了新字段
public class Movie
{
public int ID { get; set; }
[Required]
[DisplayName("Name")]
public string MovieName { get; set; }
[Required]
[DisplayName("Type")]
public string MovieType { get; set; }
[DisplayName("Year")]
public int MovieProductionYear { get; set; }
[Range(1, 5)]
[DisplayName("Priority")]
public int priority { get; set; }
[DisplayName("NoOfWatches")]
public int NumberOfWatches { get; set; }
[DisplayName("isWatched")]
public bool isWatched { get; set; }
[Range(1, 10)]
[DisplayName("IMDB")]
public int IMDBRating { get; set; }
[DisplayName("Available")]
public bool Availability { get; set; }
[StringLength(50)]
[DisplayName("Comments")]
public string Comments { get; set; }
[DisplayName("Actor")]
public string Actor { get; set; }
[DataType(DataType.Date)]
public DateTime ReleasedDate { get; set; }
}
并且新字段的add migration类包含此up和down方法
public override void Up()
{
AddColumn("dbo.Movies", "NumberOfWatches", c => c.Int(nullable: false));
AddColumn("dbo.Movies", "ReleasedDate", c => c.DateTime(nullable: false));
}
public override void Down()
{
DropColumn("dbo.Movies", "ReleasedDate");
DropColumn("dbo.Movies", "NumberOfWatches");
}
当我删除这两个字段并更新数据库时,种子方法成功运行
有什么建议?
谢谢 .
1 回答
对于NumberofWatches,种子方法是否包含零值?这是一个不可为空的int,您需要在种子处提供零(或其他整数值) . 类似地,ReleaseDate将需要每个电影种子对象的日期值,因为它也是不可空的 .