entity-framework - Code First 迁移中不包含 StringLength 属性的更改

标签 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 => 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/

相关文章:

entity-framework - 为什么我的 DbContext DbSet 为空?

尽管有提示,Oracle 并不使用隐形索引

oracle - 错误: ORA-65096: invalid common user or role name in Oracle database

sql - 将数值转换为 VARCHAR2 会引发 ORA-03113

dependency-injection - 实体类中的依赖注入(inject),代码优先

entity-framework-4 - Entity Framework 4.1 Code-First 方法实现域服务上的多对多关系

c# - 混淆删除数据上下文类

c# - 将对数据库所做的更改存储在 Entity Framework 中

c# - 如何使用空格执行 linq 搜索

c# - 我可以直接使用 Entity Framework 生成的模型吗?