首页 新闻 会员 周边

EF CodeFirst Oracle数据迁移遇到的问题

0
悬赏园豆:100 [已解决问题] 解决于 2018-09-05 18:16

如果我有一个用户实体如图
我之前没有对用户名进行配置 就直接生成了表
现在我要对用户实体中的用户名进行配置
我执行了 Add-Migration命令后生成了如下文件
我执行 Update-Database 报的错误如下
请教一下各位 这个错误是什么回事

专注写bug24年的主页 专注写bug24年 | 初学一级 | 园豆:66
提问于:2018-09-04 17:45
< >
分享
最佳答案
1

可能需要采用 EF5 Code First - Changing A Column Type With Migrations 中的方法进行迁移

AddColumn("dbo.People", "LocationTmp", c => c.Int(nullable: false));
Sql(@"
    UPDATE dbp.People
    SET LocationTmp =
        CASE Location
            WHEN 'London' THEN 1
            WHEN 'Edinburgh' THEN 2
            WHEN 'Cardiff' THEN 3
            ELSE 0
        END
    ");
DropColumn("dbo.People", "Location");
RenameColumn("dbo.People", "LocationTmp", "Location");
收获园豆:100
dudu | 高人七级 |园豆:30994 | 2018-09-04 18:04

好的 我按照您提供的思路去试试

专注写bug24年 | 园豆:66 (初学一级) | 2018-09-05 09:12

我按照您提供的方法还是报这个错误

专注写bug24年 | 园豆:66 (初学一级) | 2018-09-05 11:58

I found a solution on stackoverflow and solved this problem successfully by those steps.
1.open the database and delete the migrations history table manually
2.run the migration command again
Thanks for your suggestion

专注写bug24年 | 园豆:66 (初学一级) | 2018-09-05 14:37

@专注写bug24年: 既然可以不用考虑数据库中的已有数据,当前采用这种方法最简单

dudu | 园豆:30994 (高人七级) | 2018-09-05 14:45
其他回答(2)
0

专注写bug24年 | 园豆:66 (初学一级) | 2018-09-05 14:39
0

使用EF Code First ,最好是避免修改列的操作,很容易出问题,宁愿把列移除再新增

PFly | 园豆:96 (初学一级) | 2018-09-06 11:19

可是我这边是需要修改列的属性 很蛋疼 客户设计表 我们去实现他们的业务 但是客户设计的东西不是很完善 我们只能慢慢改

支持(0) 反对(0) 专注写bug24年 | 园豆:66 (初学一级) | 2018-09-10 10:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册