Entity framework 代码第一次迁移中不包括StringLength属性的更改

Entity framework 代码第一次迁移中不包括StringLength属性的更改,entity-framework,code-first,oracle12c,Entity Framework,Code First,Oracle12c,我有一个具有以下属性的字段: [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 =>

我有一个具有以下属性的字段:

[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; }
RenameColumn(table: "dbo.TEST", name: "Name", newName: "Test_Name");
然后我改变了字段,如下所示:

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; }
RenameColumn(table: "dbo.TEST", name: "Name", newName: "Test_Name");
并执行了
Add迁移
,但未包括
StringLength
更改,它仍然是我的Oracle数据库中的
NVARCHAR2(50)
,新迁移如下所示:

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; }
RenameColumn(table: "dbo.TEST", name: "Name", newName: "Test_Name");
这是一个普遍的问题吗


我需要做什么才能在数据库中更改长度?

您已经进行了多少次迁移?在累积了约20次迁移之后,我们开始在迁移脚本的创建过程中遇到错误。如果迁移次数超过10次,请尝试。当我进行整合时,迁移脚本的生成开始正常工作。

您可能需要修改Up()代码:谢谢。很高兴知道,但到目前为止,我只有5个。只需尝试删除所有迁移,并创建一个绿色字段初始一个,看看这是否是因为EF中的错误。