我有一个具有以下属性的字段:
[Column("Name")]
[StringLength(50)]
public string Name { get; set; }
此字段的迁移如下所示:
CreateTable(
"dbo.TEST",
c => new
{
Id = c.Int(nullable: false),
Name = c.String(maxLength: 50),
})
.PrimaryKey(t => t.Id)
.Index(t => t.Id
);
然后我把字段改成这样:
[Column("Test_Name")]
[StringLength(255)]
public string TestName { get; set; }
并执行了 Add-Migration
,但未包含 StringLength
更改,它在我的 Oracle 数据库中仍然是 NVARCHAR2(50)
并且新迁移看起来像这样:
RenameColumn(table: "dbo.TEST", name: "Name", newName: "Test_Name");
这是一个常见问题吗?
我需要做什么才能使数据库中的长度也发生变化?
最佳答案
您已经进行了多少次迁移?在累积约 20 次迁移后,我们开始在创建迁移脚本时遇到错误。如果你有超过 10 个迁移尝试 consolidate them .当我进行合并时,迁移脚本的生成开始正常工作。
关于entity-framework - Code First 迁移中不包含 StringLength 属性的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38486831/