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 ...
随机推荐
- NYOJ 1013 除法表达式(欧几里德算法+唯一分解定理)
题目链接: http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=1013 描述 给出一个这样的除法表达式:X1/X2/X3/···/Xk,其中Xi是 ...
- T4模板根据数据库表和列的Description生成代码的summary的终极解决方案
相信很多人都用T4模版生成代码,用T4模版生成标准代码真的很方便.我们经常根据表生成相关的代码, 但是估计很多人都遇见过同一个问题, 特别是我们在生成model的时候,代码中model中的Summar ...
- 获取当前iframe动态加载文档的href
Insus.NET想实现一个功能,一个旧的站点A,它有两个网页logon.aspx和Default.aspx(登录成功能访问).由于某些原因,需另建一个新站点B,这个新站点B也有两个网页B_Index ...
- Java ArrayList 数组之间相互转换
做研发的朋友都知道,在项目开发中经常会碰到list与数组类型之间的相互转换,本文通过一个简单的例子给大家讲解具有转换过程. package test.test1; import java.util.A ...
- SpringBoot启动加载类ApplicationRunner
SpringBoot启动加载类ApplicationRunner 有时希望项目在启动的时候加载一些系统参数,就要用到ApplicationRunner ApplicationRunner是一个接口,我 ...
- 【element】改变el-table样式,实现全局滚动,固定表头和表尾
后台管理系统,多半都有表格,数据量大的时候,需要固定表头或者底部. 因为饿了么是局部滚动的,现在我们需要改饿了么某些样式实现全局滚动 饿了么局部滚动 全局滚动demo 删除height=200 固 ...
- 微信小程序开发--背景图显示
这两天开发微信小程序,在设置背景图片时,发现在wxss里面设置 background-image:(url) 属性,不管是开发工具还是线上都无法显示.经过查资料发现,background-image ...
- 数组、ArrayList、链表、LinkedList
数组 数组 数组类型 不可重复 无序(线性查找) 可重复(找到第一个即可) 无序(线性查找) 不可重复 有序(二分查找) 可重复(找到第一个即可) 有序(二分查找) 插入 O(N) O(1) O( ...
- EFCore中SQLSERVER 2008 的分页问题
自SQLSERVER 2012起新增了 Offset Fetch 语法,因此EFCore默认是以此语法生成相应的分页语句的. 如果我们的目标数据库低于 2012,那么EFCore默认生成的语句在执行的 ...
- ionic默认样式android和ios差异
ionicframework中android和ios在默认样式上有一些不同的地方,官方文档中都有说明,但是经常会想不起. 一.差异: 1.tab位置,$ionicConfigProvider, tab ...