我将现有的属性 decimal
设置为 decimal?
:
public decimal? TotalAmountTTC { get; set; }
然后我使用
add-migration
命令创建了一个迁移,它生成了以下内容: migrationBuilder.AlterColumn<decimal>(
name: "c0003_total_amount_ttc",
table: "t0003_transfer_request",
type: "decimal(13,4)",
nullable: true,
oldClrType: typeof(decimal),
oldType: "decimal(13,4)");
但是在我执行了
update-database
之后,该列仍然是非空的
:
当我运行script-migration
来检查生成的SQL时,我们可以清楚地看到它并不关心我的属性现在是否可为空: ALTER TABLE "t0003_transfer_request" MODIFY "c0003_total_amount_ttc" decimal(13,4)
/
我做错了什么吗? 这是一个bug吗?
我尝试在映射中设置
IsRequired(false)
,但结果相同。 builder.Property(tr => tr.TotalAmountTTC).HasColumnName("c0003_total_amount_ttc").IsRequired(false);
ALTER TABLE "t0003_transfer_request" MODIFY "c0003_total_amount_ttc" NULL;
。很有可能不支持这样的修改。如果将列从可为空更改为不可为空,您会期望工具会做什么? - undefined