亚洲必赢bwin696.comEF Code-First(Oracle)通过Migration来更新数据库的表明的字段

有关Oracle中采取Entity Framework 6.x
Code-First方式开发,请参见博客(菩提下的杨过)https://www.cnblogs.com/yjmyzz/p/how-to-use-code-first-in-oracle-with-entity-framework-6.html的切实可行介绍,里面关于以Entity
Framework进行Code-First开发及开创Database
Migration有详尽的教学与官方参考的连。这里就是不赘述了。

以EntityframeWork的CodeFirst来写程序的时候,会时常遇上需要改实体内容(即表中之字段的始末),这个时刻即便待因此到Database
Migration,但是当骨子里过程遭到难免会逢有题材,这里记录几只自我遇到的问题,以及缓解之方。

1、关于创建及动Migration,本文中连参考的章曾出了,这里总结一下几单使用命令。

工具(Tools)–>程序包管理器(Package
Manager)–>程序包管理器控制台(Package Manager
Console),1)Enable-Migrations;2)Add-Migration
MigrationName;3)Update-Migration(这里仿佛之前写错了,应该是:Update-Database)。

2、Update-Migration(这里仿佛之前写错了,应该是:Update-Database)出错。

Update-Migration(这里仿佛之前写错了,应该是:Update-Database)有时候会出错,出错的缘由出成千上万,原因或是部署问题,可能是数据库原因,以及其它因,这个时如果以找不顶解决之法,这个时段重新转实体对应的表或者实体性质对应的表底字段,是可望而不可及的相同栽下策。比如自己当实际上付出中碰到将尚未增长[Attribute]的string类型属性添加[MaxLength]Attribute之后,生成Migration,怎么还连不了Update-Migration。无奈只好先去旧的特性,再上加上去。就好了。

3、Add-Migration出错。

Add-Migration出错一般容易报错的是“Unable to generate an explicit
migration because the following explicit migrations are
pending:[MigrationName].Apply the pending explicit migrations before
attenpting to generate a new explicit
migration”。这个似是而非是为前面有一个新建(New Add-Migration
Command)的Migration没有给实施(Update-Migration),处于听命(pending)的状态,只要先运行命令将是migration执行了就解除pending状态了。一般还是由update-migration执行不了才会促成后面的add-migration无法继续。这里可以优先用之前的Migration里面的“public
override void
up()”方法中的代码注释了以尽Update-Migration命令,这样不见面对数据库有实际操作,也免除了pending状态。然后就是可补加新的Migration了。

叠加(修改时间:2017年12月19日09:56)

运用AutomaticMigrationsEnabled =
true(将Migrations文件夹下之Configurations.cs里面的安装改下就可以了)
 这样之后更新数据库的时节就需要输入Update-Database就得了,不用Add-Migration了。

 

 

相关文章