使用CodeFirst创建数据库
1.新建一个类库项目
2.右键管理Nuget程序包,搜索EntityFramework.然后安装
3.新建一个类,然后引用 using System.Data.Entity; 然后写类初始化方法(base中的字符串为数据库的配置名称)
4.在App.config中添加数据库链接配置(注意:该配置放在主项目中,此项目为类库项目不能直接运行,所以此配置放在主项目中,若放在该类库项目中
则初始化时会从主项目中寻找该配置.而主项目没有的话则会生成到vs默认的本地数据库).
5.然后点击工具->nuget包管理器->程序包管理器控制台执行 enable-migrations –EnableAutomaticMigration:$true
之后会自动创建一个继承自DbMigrationConfiguration类的Configuration类.并修改一个默认属性
6.新建一个类,创建完之后在自己创建的DbContext类(第三步)中添加对应的类的信息.
7.CodeFirst有两种创建更新数据库的方式分别是自动和控制台
自动
1.自动合并更新配置在第五步中的两个属性中的第一个自动更新属性配置为True了;
2.调用 Database.SetInitializer(new MigrateDatabaseToLatestVersion<CodeFirstDbContext, CodeFirst.Migrations.Configuration>());
(此处放在主项目的Global.asax.cs -> Application_Start ()方法中.这样只会执行一次跟新合并数据库)
3.实例化CodeFirstDbContext.并执行查询
using (var ctx = new CodeFirstDbContext())
{
var studentName = ctx.Database.SqlQuery<User>("Select * from Users where id=@id", new SqlParameter("@id", 1))
.ToList();
}
此处执行完毕之后数据库才会合并跟新,如不实例化并查询.并不会合并更新数据库
控制台
1-Add-Migration FirstInit
2.Update-Database
① updata-database [-verbose]
在程序包控制台中执行这条命令时,会执行Add-Migration命令创建的最新的迁移文件,并更新数据库。
执行完上边三步数据库就生成了,以后当我们修改实体类时,执行Add-Migration [MigName]后再执行Update-Database [-verbose],就可方便地根据模型的变化更新数据库。
② update-database -TargetMigration:xxx
如果我们想回退到某一个版本时执行:
update-database -TargetMigration:FirstInit//数据库回退到第一次的版本
使用CodeFirst创建数据库的更多相关文章
- EF CodeFirst 创建数据库
最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷 学无止境,精益求精 话说EF支持三种模式:Code First M ...
- NetCore2.0下使用EF CodeFirst创建数据库
本文所使用的VS版本:VS2017 15.3.0 首先新建一个.net core项目 取名NetCoreTask 使用模型视图控制器方式 新建Model层 在Model层下新建一个user实体类 1 ...
- 使用EF CodeFirst 创建数据库
EntityFramework 在VS2015添加新建项时,选择数据->ADO.NET 实体数据模型,有一下选项 来自数据库的EF设计器,这个就是我们最常用的EntityFramework设计模 ...
- ASP.NET Core 2.2 WebApi 系列【二】使用EF CodeFirst创建数据库
Code First模式 Code First是指"代码优先"或"代码先行". Code First模式将会基于编写的类和配置,自动创建模型和数据库. 一.准备 ...
- ASP.NET通过EntityFramework CodeFirst创建数据库
Number1 新建一个项目 给新项目添加一个实体数据模型 选择第三个 这里我创建两个有关系的类,也就是有外键关系的数据库表 using System; using System.Collection ...
- .net core2.0 codefirst 创建数据库的问题!
appsettings.json和Startup.cs就不记录了,网上很多!! 1.必须在有DbContext类的项目里添加这3个NuGet引用 Microsoft.EntityFrameworkCo ...
- EF CodeFirst 如何通过配置自动创建数据库<当模型改变时>
最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷 学无止境,精益求精 本篇为进阶篇,也是弥补自己之前没搞明白的地方,惭愧 ...
- 【无私分享:ASP.NET CORE 项目实战(第四章)】Code First 创建数据库和数据表
目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 本章我们来介绍下Asp.net Core 使用 CodeFirst 创建数据库和表,通过 控制台 和 dotnet ef 两种 ...
- MVC CodeFirst简单的创建数据库(非常详细的步骤)
最近在学习MVC的开发,相信有过开发经验的人初学一个新的框架时候的想法跟我一样最关心的就是这个框架如何架构,每个架构如何分工,以及最最关键的就是如何与数据库通信,再下来才是学习基础的页面设计啊等 ...
随机推荐
- [MySQL] 事务的ACID特性
事务的ACID特性: 原子性(atomicity):一个事务是一个不可分割的最小工作单位,事务中的所有操作要么都做,要么都不做. 一致性(consistency):事务前后数据的完整性必须保持一致.事 ...
- va_list 、va_start、 va_arg、 va_end 使用说明【转】
转自:https://blog.csdn.net/f110300641/article/details/83822290 在ANSI C中,这些宏的定义位于stdarg.h中: typedef cha ...
- Skyshop.Detail Maps
Secondary Maps(Detail Maps) & Detail Mask 增加模型细节,而不需要使用单张的超大贴图. 应用:增加皮肤细节,比如毛孔:砖墙添加细小的裂缝和青苔:大型金属 ...
- Java中用import导入类和用Class方法加载类有什么区别?
import仅仅包含导入操作,并不包含将字节码文件加载进内存这一动作,将字节码文件加载进内存是后续的实例化操作完成的. 例如通过import导入了一堆包和类,但是后续什么都没用(没用实例化),那么导入 ...
- c# 第8节 变量、变量名命令规则、作用域、@的作用
本节内容: 1:变量 2:变量名命令规则 3:常量 4:变量和常量的作用域 5:@的作用 1:变量是什么? 计算即中存储变量的也是三步骤: 实例: 2:变量命令规则 练习: 3.常量 实现: 4:变量 ...
- Dubbo介绍(一)
Dubbo是一个分布式.高性能.透明化的 RPC 服务框架,作用是提供服务自动注册.自动发现等高效服务治理方案. 一.Dubbo架构图 Provider:提供者,服务发布方 Consumer:消费者, ...
- luoguP3172 [CQOI2015]选数
题意 所求即为: \(\sum\limits_{i_1=L}^{R}\sum\limits_{i_2=L}^{R}...\sum\limits_{i_k=L}^{R}[\gcd(i_1,i_2,... ...
- 树莓派“Wlan0: Not associated”报错解决方案
当执行 ifconfig wlan0 时,是有wlan0的网卡信息输出的. 当执行 ifconfig wlan0 up 是没问题的(即没有任何输出). 执行 iwlist wlan0 scan | g ...
- cerely-分布式异步任务队列
Celery 是一个强大的 分布式任务队列 的 异步处理框架,它可以让任务的执行完全脱离主程序,甚至可以被分配到其他主机上运行.我们通常使用它来实现异步任务(async task)和定时任务(cron ...
- [Taro] 解决 使用 Taro UI 小程序下 Iconfont 图标 不显示问题
Taro UI 配置 第三方 的 文档 配置即可解决 https://taro-ui.jd.com/#/docs/icon 解决问题: 之前 只有在H5下 才显示 Iconfont 图标 后来按照此文 ...