EF CodeFirst 数据库的操作
生成数据库
首先需要通过Nuget安装Migration
这一步是初始化Migration操作。
首先打开程序包控制台, 工具——NuGet包管理器——程序包管理控制台

打开后,在控制台输入下面的命令,这个命令只需要在第一次的时候使用。
Enable-Migrations
输入完成后,会在我们的目录生成一个名为 Migrations 的文件夹

第二步,在控制台输入这个命令
Add-Migration InitialCreate
这一步是创建初始化的数据库,生成创建数据库表和相关设置的文件。一般这个文件名会是 yyyymmddhhmmss_Initial.cs

第三步是执行更新数据库的命令
Update-DataBase
将上面生成的数据库相关的语句,在web.config配置的关联数据库中进行更新。
更新数据库
以上是第一次数据库生成操作,而实际开发中,我们根据需求和功能会对数据库进行修改增删字段。
这个时候,千万不要在修改了Model中的实体类文件后,直接修改数据库的表,那样会报错的。我们也通过Nuget控制台来进行数据库的更新操作。
第一步,在控制台输入这个命令:
Add-Migration ‘操作说明’
这里的 “操作说明” 可以随便填写,主要是方便记录自己为什么更新数据,进行了什么更新操作。比如我们增加了一个表 User ,我们就可以写 “AddUserTable ”
运行完成后,我们会在Migrations的文件夹下面发现新增了一个文件,名为 yyyymmddhhmmsss_AddUserTable.cs。里面记录的就是我们创建User表的操作

第二步,在控制台输入:
Update-DataBase
我们最终的目的是要对数据库进行修改,所以最终我们要运行 更新数据库 的操作。
数据库修改操作回滚
有些时候,我们在更新数据库时,如果出现了错误的更新,这个时候,我们需要对上次的更新进行回滚操作
我们就输入以下命令:
Update-Database -TargetMigration 201801170457113_addUserTable
其中 “201801170457113_addUserTable” 就是我们回滚到哪一次对数据库的操作。
这个我们可以在 Migrations 文件夹中查看操作记录。选择我们需要回滚到的节点操作,将对应的文件名称复制过来就可以。
EF CodeFirst 数据库的操作的更多相关文章
- EF Codefirst方式数据库维护操作
关于EF codefirst方式数据库维护操作 1.数据实体更新 2.打开pm - 锁定项目:MLearning.Data 3.执行命令 : add-migration [名称] 4.检查无误后,执行 ...
- EF CodeFirst 数据库初始化策略
最近用EF做了几个小东西,了解简单使用后有了深入研究的兴趣,所以想系统的研究一下EF CodeFist的几个要点.下面简单列一下目录 1.1 目录 数据库初始化策略和数据迁移Migration的简单介 ...
- EF Codefirst 初步学习(二)—— 程序管理命令 更新数据库
前提:搭建成功codefirst相关代码,参见EF Codefirst 初步学习(一)--设置codefirst开发模式 具体需要注意点如下: 1.确保实体类库程序生成成功 2.确保实体表类库不缺少 ...
- EF CodeFirst 如何通过配置自动创建数据库<当模型改变时>
最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷 学无止境,精益求精 本篇为进阶篇,也是弥补自己之前没搞明白的地方,惭愧 ...
- EF CodeFirst 创建数据库
最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷 学无止境,精益求精 话说EF支持三种模式:Code First M ...
- EF CodeFirst系列(2)---CodeFirst的数据库初始化
1. CodeFirst的默认约定 1.领域类和数据库架构的映射约定 在介绍数据库的初始化之前我们需要先了解领域类和数据库之间映射的一些约定.在CodeFirst模式中,约定指的是根据领域类(如Stu ...
- NetCore2.0下使用EF CodeFirst创建数据库
本文所使用的VS版本:VS2017 15.3.0 首先新建一个.net core项目 取名NetCoreTask 使用模型视图控制器方式 新建Model层 在Model层下新建一个user实体类 1 ...
- 使用EF CodeFirst连接MySql数据库
如何使用EF CodeFirst连接MySql数据库? 我们这篇文章介绍怎么使用EF连接MySql 作者的环境 VS2017.Win10.MySql5.x 前言 一般在EF中,默认是使用SqlServ ...
- EF CodeFirst生成数据库到Sqlserver中
EF CodeFirst简单实例这篇文章介绍了如何用EF去快速生成数据库.但是这个并没有生成到sqlserver中,总觉得不爽.下面就来讲一下,如何将数据库生成到sqlserver中. 按照EF Co ...
随机推荐
- 1657 Distance on Chessboard(简单计算题)
描述 国际象棋的棋盘是黑白相间的8 * 8的方格,棋子放在格子中间.如下图所示:王.后.车.象的走子规则如下: 王:横.直.斜都可以走,但每步限走一格. 后:横.直.斜都可以走,每步格数不受限制. 车 ...
- 【angular5项目积累总结】文件上传
<div class="form-group row"> <label class="col-sm-2 col-form-label"> ...
- 没有什么,开发ASP.NET时随便写写,想到什么写什么
没有什么,开发ASP.NET时随便写写,想到什么写什么,这次想写点开发过程中,比如在数据库,某一张表中有一个字段,如下: 上面代码示例中高亮字段,数据类型为BIT,它存储的值将为"True& ...
- JavaScript之String总汇
一.常用属性 ·length:返回字符串中字符长度 let str = 'asd '; str.length = 1;//无法手动修改,只读 console.log(str.length);//4 二 ...
- 设计模式——适配器模式(type-c转3.5mm耳机口)
本文首发于cdream的个人博客,点击获得更好的阅读体验! 欢迎转载,转载请注明出处. 本文简述适配器模式,考虑到java中没有多继承就只写了对象适配器模式,然后例子是怎么用转接口把3.5mm耳机插在 ...
- Inviting Friends(hdu3244 && zoj3187)完全背包+二分
Inviting Friends Time Limit: 1 Second Memory Limit: 32768 KB You want to hold a birthday party, invi ...
- Zipper(poj2192)dfs+剪枝
Zipper Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 15277 Accepted: 5393 Descripti ...
- JS中的倒计时
一.注:一般倒计时的时间都是后台传来的然后渲染到页面,这里有2个简单的倒计时方式 //带天数的倒计时function countDown(times){ var timer=null; timer=s ...
- 理解Java线程
使用多线程的目的是更好的利用cpu资源,大部分多线程代码都可以用单线程来实现,但也有无法用单线程实现的,如:生产者消费者模型 下面对一些常用的概念进行区分: 多线程:指的是这个程序(一个进程)运行时产 ...
- 设计模式原则(4)--Interface Segregation Principle(ISP)--接口隔离原则
作者QQ:1095737364 QQ群:123300273 欢迎加入! 1.定义: 使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不需要的接口. 2.使用场景: 类A ...