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 ...
随机推荐
- POJ 1007 DNA Sorting(sort函数的使用)
Description One measure of ``unsortedness'' in a sequence is the number of pairs of entries that are ...
- Winform下判断文件和文件夹是否存在
//选择文件夹 FolderBrowserDialog dia = new FolderBrowserDialog(); if (dia.ShowDialog() == System.Windows. ...
- 第一个微信小程序
微信官方已经开放微信小程序的官方文档和开发者工具.前两天都是在看相关的新闻来了解小程序该如何开发,这两天官方的文档出来之后,赶紧翻看了几眼,重点了解了一下文档中框架与组件这两个部分,然后根据简易教程, ...
- 面向对象 【类库】【委托】【is as运算符】
类库(Class Library) .dll文件 类库字面意思就是类的集合,里面有很多被编译后的C#代码,不可阅读,不可修改,只能调用 类库是一个综合性的面向对象的可重用类型集合,这些类型包括:接口. ...
- mysql数据库自动备份脚本
#!/bin/bash #功能说明:本功能用于备份mysql数据库 #编写日期:2018/05/17 PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin ...
- Guava RateLimiter实现接口API限流
一.简介 Guava提供的RateLimiter可以限制物理或逻辑资源的被访问速率.RateLimit二的原理类似与令牌桶,它主要由许可发出的速率来定义,如果没有额外的配置,许可证将按每秒许可证规定的 ...
- mongodb基础环境搭建
一.准备工具 (1)mongodb(https://www.mongodb.com/dr/fastdl.mongodb.org/win32/mongodb-win32-x86_64-2008plus- ...
- ConcurrentDictionary的用法
private static ConcurrentDictionary<Guid, string> dictDbNames = new ConcurrentDictionary<Gu ...
- Android手机上,利用bat脚本模拟用户操作
………… 那么你就可以来看看这篇帖子了. 言归正传 利用bat脚本模拟用户操作,需要用到两点: ①就是adb命令了,adb命令可以用来模拟用户在手机上的操作 ②bat语言,就是批处理语言,主要用来进行 ...
- TestLink笔记(一):环境配置+安装
注:转载请加上原文链接,谢谢! 本文的安装环境是Windows操作系统. (一) 前期准备 1.XAMPP下载(下载5.6的版本) https://www.apachefriends.org/ ...