【发布时间】:2026-02-09 02:50:01
【问题描述】:
我想将 [Required] 属性添加到包含 NULL 值的现有数据库记录中,并且数据库本身是使用 Code First 迁移自动生成的。模型架构更新可能如下所示:
public class Product // BEFORE UPDATE
{
[Key]
public int ID { get; set; }
[Required]
public string Name { get; set; }
public string Color { get; set; }
}
public class Product // AFTER UPDATE
{
[Key]
public int ID { get; set; }
[Required]
public string Name { get; set; }
[Required] // <---- Added
public string Color { get; set; }
}
然后我运行命令
add-migration MakeColorRequired // Runs successfully
update-database // Crashes
后一个命令崩溃,因为它不允许现有的数据库条目与 color 元素已设置为 NULL 成为必填字段,并给出错误:
Cannot insert the value NULL into column 'Color',
table 'MySystem.dbo.Product';
column does not allow nulls.
UPDATE fails.
有没有办法在不删除数据库的情况下克服这个问题?例如,能够为所有冲突的记录设置新的默认值在我的场景中效果很好,但我还没有找到任何实际这样做的方式。
【问题讨论】:
标签: c# sql asp.net-mvc database-schema entity-framework-migrations