EF Code-First(Oracle)通过Migration来更新数据库的表底字段

EF 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了。

 

 

admin

网站地图xml地图