支持的数据库:可以查看官方网站
https://docs.microsoft.com/en-us/ef/core/providers/

安装了VS2017后会安装了LocalDB,验证localDB
在CMD输入:sqllocaldb

现实当前存在的实例
sqllocaldb info

使用VS也可以查看


appsettings.json配置数据库链接字符串

把localDB的链接字符串复制到这里

需要有一个类继承DBContext这个类,有一些属性DbSet,每一个DbSet和数据中的一个表对应

如果使用EFCore

默认按装了AspNetCore.App里面应该默认安装了EFCore这里搜一下

这里已经包含了这么多了,如果使用的是Sql server的默认基本就足够了

测试命令,dotnet ef。说明ef没问题
dotnet ef就是efCore的命令行工具

新建文件夹,并新建类DataContext

继承这个DbContext。命名空间在上面引入

prop可能是Resharper的快捷键,快速建立属性

Resharper自动生成的属性名,通常会加上s表示复数的形式

增加构造函数,配置链接到哪个数据库
ctor快捷键

把配置信息从构造函数传进来

options的配置信息传进来之后呢,要把它传给他的父类。然后这DataContext的功能才完整了。
父类会处理这些配置信息,连接适当的数据库

要使用这个DbContext,依赖注入的方式

它有个overload方法可以配置他的参数,写一个栏目大表达式,这个options有很多的方法,
这里使用的方法是志明数据库的类型

useSqlServer有个必填的参数就是数据库的链接字符串
需要回去appSetting.json里面的配置信息
startUp写个构造函数,可以注入一些服务

注入IConfiguration,
这里又用到了Resharper,添加一个field


这个Configuration是在什么时候注册完成的呢?是在这里的CreateDefaultBuilder方法里就已经注册好了,所以在StartUp里面可以使用这个服务

有层级关系,曾与层之间应冒号;

把链接字符串春进去就可以了

然后改一下数据库链接字符串的 数据库名称:

这个表示使用windows验证

另外一种获取链接字符串的方法GetConnectionString会去找ConnectionStrings下面的值


不用创建变量直接回去也是可以的

迁移

15分32秒

如果使用VS2017 就在包管理工具的窗体内
如果使用cli 就在cmd窗体

迁移命令

迁移如要涉及到这两个命令

执行迁移的命令

创建了Migrations文件夹,里面有两个文件,带事件戳的是迁移文件,SnapShot是快照文件,快照文件不要手动去改,迁移文件在有的情况下可以稍做改动

Updaste-Database -Verbose
-Verbose:查看执行的明细过程

表就创建好 了。一个是Students表,一个是数据迁移的表

HomeController对接口有依赖,对具体的实现类没有依赖

修改为读取数据库

新建类文件EFCoreRepository

注入DataContext

EF修改原来的代码

修改为EFCoreRepository

这里因为使用了DBContext,它不是线程安全的,AddSingleton肯定会发生线程的问题修改为Scoped模式
每次http请求,生成一个新的实例。每次Http请求,可以保证它是在一个线程里,或者叫做一个逻辑线程内

清理,没用的代码

app.Run的代码删掉

配置文件里清楚垃圾代码

运行程序报错

这里去掉



ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 10. 使用EF Core的更多相关文章

  1. ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 03. 服务注册和管道

    ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 03. 服务注册和管道 语雀: https://www.yuque.com/yuejiangliu/dotnet/ ...

  2. 张高兴的 Entity Framework Core 即学即用:(一)创建第一个 EF Core 应用

    写在前面 Entity Framework Core (EF Core) 是 .NET 平台流行的对象关系映射(ORM)框架.虽然 .NET 平台中 ORM 框架有很多,比如 Dapper.NHibe ...

  3. ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 25. 过滤器

    在MVC的请求管道 并不是  asp.net core的请求管道.所以说Filter是专用于MVC的 贯穿特性,横穿关注点.比如授权.日志 这里的Authorize其实就是一个Filter,主要用来授 ...

  4. ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 02. Web Host 的默认配置

    视频地址: https://www.bilibili.com/video/av38392956/?p=2 语雀 https://www.yuque.com/yuejiangliu/dotnet/ixt ...

  5. ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 12. Views 下

    ASP.NET Core MVC 13. 安装前端库 Partial VIew 就是部分View,他没有自己的数据,数据来自图中白色的那块,它的数据需要传进去,第一个参数是View的名称,第二个参数就 ...

  6. ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 04. 中间件

    注册startup类可以配置我们web应用的启动逻辑,使用的就是UseStartUp方法,asp.net core就会实例化这个类 并调用startup类里面的两个方法ConfigureService ...

  7. ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 13. 安装前端库

    前端库使用npm进行安装,需要先建立webpack.json文件 因为我们没有使用npm安装任何库,所以npm的文件夹是空的 这里是用于开发时构建时引用的库写在这里 这里用到bootStrap 开发时 ...

  8. ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 27. CICD Azure DevOps

    VSTS做持续集成 后来改名叫做Azure Deveps https://azure.microsoft.com/zh-cn/services/devops/ 这是中文的地址 创建一个项目 名称.描述 ...

  9. ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 01. 创建项目 +项目结构和配置简介

    新建项目:Tutotial.Web 解决方案名称可以把web去掉 视频里面把git这个选项勾选了.我就不勾选了 dotnet CLI创建项目 首先必须安装好了.net Core的SDK dotnet ...

随机推荐

  1. OD调试器调试Delphi程序按钮事件断点方法

    这几天我调试一个Delphi程序,总是无法断点按钮事件,像我这样的菜鸟断点按钮事件真心累啊.所以我分享一下我下断点的经验!希望新手们少走弯路!!   工具/原料   OD调试器 Delphi程序 方法 ...

  2. DICOM医学图像显示算法改进与实现——LUT

    引言 随着Ul(超声成像).CT(计算机断层成像).MRI(核磁共振成像).CR(计算机X线成像).电子内窥镜.盯(正电子发射断层成像)和MI(分子影像)等医学影像设备不断涌现,利用计算机对医学影像设 ...

  3. 深度神经网络多任务学习(Multi-Task Learning in Deep Neural Networks)

    https://cloud.tencent.com/developer/article/1118159 http://ruder.io/multi-task/ https://arxiv.org/ab ...

  4. ceph工作原理和安装

    一.概述 Ceph是一个分布式存储系统,诞生于2004年,最早致力于开发下一代高性能分布式文件系统的项目.随着云计算的发展,ceph乘上了OpenStack的春风,进而成为了开源社区受关注较高的项目之 ...

  5. CSS3中transition-duration參数对hover前后两种过渡时间的影响

    transition-duration这个參数是设置过渡时间的,将transition-duration放在哪个类中.那么在这个类被启用时就会依照transition-duration设定的时间来过渡 ...

  6. 一致性hash算法在memcached中的使用

    一.概述 1.我们的memcacheclient(这里我看的spymemcache的源代码).使用了一致性hash算法ketama进行数据存储节点的选择.与常规的hash算法思路不同.仅仅是对我们要存 ...

  7. CentOS挂载优盘

    插入优盘前: [root@centOS5 mnt]# fdisk -l Disk /dev/hdd: bytes heads, sectors/track, cylinders Units = cyl ...

  8. 《STL源代码剖析》---stl_deque.h阅读笔记(2)

    看完,<STL源代码剖析>---stl_deque.h阅读笔记(1)后.再看代码: G++ 2.91.57,cygnus\cygwin-b20\include\g++\stl_deque. ...

  9. Vs2012在Linux开发中的应用(6):改写Makefile项目的Build过程

    MSBUILD的编译过程实际上是依据一系列的targets文件定义的.当我们在IDE运行生成.批生成.清理命令的时候.VS会查找这些命令相应的Task并运行它,以下我们逐个分析这个过程. 当运行生成操 ...

  10. Cocos Console命令总结

    1. 工程创建 使用Cocos Console创建工程非常简单,安装完cocos命令之后,只需要在需要创建工程的目标目录下打开终端或命令行工具,输入下面的命令即可: cocos new -l js P ...