【发布时间】:2016-07-04 06:30:09
【问题描述】:
我正在尝试使用 EF 6 迁移在 oracle 中将 CLOB 列更改为 VARCHAR(2000)。当 EF 构建迁移文件时,我的 Up() 方法中有以下代码行:
AlterColumn("MTA.PLAN_SHEETS", "PLANSHEET_NAME", c => c.String(maxLength: 2000, unicode: false));
当我运行迁移时出现此错误
列的修改无效
我知道在 Oracle 中我们不能直接将 Clob 更改为 Varchar:
How to change a dataype CLOB TO VARCHAR2(sql)
在实体框架迁移中将 Clob 更改为 Varchar 的最佳方法是什么?
【问题讨论】:
-
有人回答这个问题吗?我无意中允许 EF6 创建 CLOB 而不是 NVARCHAR2。现在我需要将它们更改为 VARCHAR2,但我不想丢失现在列中的数据
-
您需要使用上面链接中的基本步骤在 2 或 3 次迁移中执行此操作。首先添加 varchar2 列,重命名 CLOB 列并添加脚本命令以复制数据。然后您可以进行第二次迁移以将 varchar2 重命名为原始 CLOB 列名。测试它,当您满意时添加第三次迁移以删除 CLOB。
标签: oracle entity-framework entity-framework-6 entity-framework-migrations