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

 

 

相关文章