【发布时间】:2012-09-09 20:05:18
【问题描述】:
我在ASP.NET MVC application 中的一个模型中添加了[Required] 数据注释。创建迁移后,运行Update-Database 命令会导致以下错误:
无法将值 NULL 插入到列 'Director' 中,表 'MOVIES_cf7bad808fa94f89afa2e5dae1161e78.dbo.Movies';列不 允许空值。更新失败。声明已终止。
这是由于某些记录在其Director 列中具有 NULL。如何自动将这些值更改为某个默认值(比如“John Doe”)导演?
这是我的模型:
public class Movie
{
public int ID { get; set; }
[Required]
public string Title { get; set; }
[DataType(DataType.Date)]
public DateTime ReleaseDate { get; set; }
[Required]
public string Genre { get; set; }
[Range(1,100)]
[DataType(DataType.Currency)]
public decimal Price { get; set; }
[StringLength(5)]
public string Rating { get; set; }
[Required] /// <--- NEW
public string Director { get; set; }
}
这是我最新的迁移:
public partial class AddDataAnnotationsMig : DbMigration
{
public override void Up()
{
AlterColumn("dbo.Movies", "Title", c => c.String(nullable: false));
AlterColumn("dbo.Movies", "Genre", c => c.String(nullable: false));
AlterColumn("dbo.Movies", "Rating", c => c.String(maxLength: 5));
AlterColumn("dbo.Movies", "Director", c => c.String(nullable: false));
}
public override void Down()
{
AlterColumn("dbo.Movies", "Director", c => c.String());
AlterColumn("dbo.Movies", "Rating", c => c.String());
AlterColumn("dbo.Movies", "Genre", c => c.String());
AlterColumn("dbo.Movies", "Title", c => c.String());
}
}
【问题讨论】:
标签: c# asp.net-mvc entity-framework ef-code-first