001 Entity Framework Core 2.x P1
EF Core
- 概述:
- Entity Framework Core 简介
- 创建Model
- 与数据库交互
- 关系数据
- 在
ASP.NET Core
中的应用
EF Core 是什么?
EF Core是微软官方开发的一款ORM框架.
EFCore原理
EF Core 相对于其他ORM的优势在于可以大大的提高生产力,并且,由于是微软自己的产品,所以和.Net Core
的结合也会非常的好,可以提供开发者的工作效率,但是相应的, EFCore 的性能也会相对的要差于 .Net
世界的一些其它主流ORM框架,比如 Dapper,SqlSugar等.
为什么使用EFCore
- 生产力
- 支持很多数据库
- 可以使用Linq
- 注重领域[Domain],而不是数据库
EFCore 2.x支持的平台框架
- .Net Core 2.x
- .Net 4.6.1+
- UWP
- Xamarin 等
安装EFCore
我们需要再Nuget包管理其中搜索一下安装包即可.
Microsoft.EntityFrameworkCore
安装界面
值得注意的是Microsoft.EntityFrameworkCore
只是提供了,基本的EFCore的操作类,如果我们需要操作具体的数据库,那么我们还需要安装操作指定的数据的Providers开发包,下面我们以SqlServer数据库为例,所以我们需要再安装支持SqlServer的EFCore开发包,在Nuget中搜索以下信息即可.
Microsoft.EntityFrameworkCore.SqlServer
安装界面
查看本机SqlServer 实例的 cmd命令
Sqllocaldb info
查询结果
EFCore 迁移
- 创建/删除 Domain Model
- 创建迁移文件
- 应用迁移到数据库,获取生成SQL脚本
迁移用的库
如果我们想要在Vs中依赖EFCore使用迁移命令,将Model代码映射到数据库中,我们还需要再Vs中安装一个依赖包.
Microsoft.EntityFrameworkCore.Tools
- Microsoft.EntityFrameworkCore.Tools :用来执行PowerShell命令
- Microsoft.EntityFrameworkCofe.Desion :是一个迁移引擎
依赖关系
- 需要一个可执行的项目
- 必须在启动项目里
安装页面
安装完成之后,我们就可以在Vs的包管理控制台中,输入迁移命令,将项目中的Model,迁移至数据库中,生成表,以及表数据,在包管理控制器中,实际上我们可以执行PowerShell的相关命令.
我们需要选择DbContext所在的项目.
我们现在可以在包管理控制台中,查看EFCore相关的命令,我们数据一下命令来进行查看.
get-help entityframeworkcore
查询的结果
命令解释:
Add-Migration 如果创建了Model,或者已创建的Model发生了改变,那么此命令执行就会生成一些sql语句,这些sql语句执行之后,那么数据库中表结果,就会根据model,进行匹配,并且一同演进. (只是生成sql语句,这个sql语句并没有执行.)
Update-Database 等于是在Add-Migration命令的基础上,将生成好的sql执行到数据库中,达到数据库和Model同步的目的.
现在我们进行迁移,此处需要注意的是在进行迁移之前,我们需要将DbContext所在的项目设置为启动项,否则在之前Add-Migration命令的时候会报错,如下图:
命令执行报错
我们修改启动项之后再执行Add-Migration命令:
命令执行成功
这个时候,在EFCore.Data
项目中会自动创建一个Migrations
文件夹,并生成,此次迁移要使用到的变化(类似于一个快照)即,迁移文件.
迁移文件
我们可以根据此次生成的迁移文件,根据 Script-Migration 命令 生成需要迁移的sql脚本.
命令执行成功
成功生成了迁移相关的sql语句
在开发的时候,我们可以使用Upate-Database命令来直接生成数据库,如果我们想看执行的明细,我们可以在Update-Database 命令后面跟一个 -verbose参数,即Update-Database -verbose
命令执行成功
此时生成的数据库文件在当前计算机的当前用户的目录下,我的电脑是
C:\Users\ZYJNO
数据库文件
我们通过数据库对象管理器,就可以看到我们所创建的数据库了.
数据库对象管理器
- 上述文档参考自
原文地址:https://www.cnblogs.com/HelloZyjS/p/12685793.html