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 ...
随机推荐
- 大数据技术之_08_Hive学习_05_Hive实战之谷粒影音(ETL+TopN)+常见错误及解决方案
第10章 Hive实战之谷粒影音10.1 需求描述10.2 项目10.2.1 数据结构10.2.2 ETL原始数据10.3 准备工作10.3.1 创建表10.3.2 导入ETL后的数据到原始表10.3 ...
- laravel 单词
return view('admin.user.login'); 返回 admin文件夹下, user文件夹中 login文件模板 setcookie 语法 setcookie(name,value, ...
- 并发编程——ConcurrentHashMap#helpTransfer() 分析
前言 ConcurrentHashMap 鬼斧神工,并发添加元素时,如果 map 正在扩容,其他线程甚至于还会帮助扩容,也就是多线程扩容.就这一点,就可以写一篇文章好好讲讲.今天一起来看看. 源码分析 ...
- NodeJS+Express开发web,为什么中文显示为乱码
把你的文件另存为下,格式为utf-8的试下就行!
- Jquery操作属性
1.attr(name,value):修改单个属性! name :属性名称 value:属性的值 <script> $(function(){ //给div添加一个alt=hello的属性 ...
- js实现iview表格 排名列
(有误,请勿观看) 一.排名的简单实现 //排名例子1 //需要排名的数组 //var myArray = [5,7, 7, 9, 8, 6, 23]; //新数组 //var thisArray = ...
- 转载 HashSet用法
NET 3.5在System.Collections.Generic命名空间中包含一个新的集合类:HashSet<T>.这个集合类包含不重复项的无序列表.这种集合称为“集(set)”.集是 ...
- docker 第一次学习(一)--安装以及相关命令
转自:https://www.jianshu.com/p/c69a2a3b4c7a https://docs.docker.com/ http://www.dockerinfo.net/documen ...
- Java虚拟机--Java内存区域的划分和异常
Java内存区域的划分和异常 运行时数据区域 JVM在运行Java程序时候会将内存划分为若干个不同的数据区域. 程序计数器 线程私有.可看作是当前线程所执行的字节码的行号指示器,字节码解释器的工作是通 ...
- groovy编程注意事点
集合中一些方法工作在集合的一个副本上并且完成的时候返回这个副本,而另外一些方法直接操作这个集合对象. 和Java一样不能通过迭代移除元素. list和map遵循java规则限制,但通过附加的方法降低了 ...