C#   发布时间:2022-04-13  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了EFCore 6.0入门看这篇就够了大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

前言

作为一直在dotNet行业耕耘的码农,这几年在大大小小项目中也涉及到了许多ORM框架,比如:EFCore,Dapper,NHibernate,SqlSugar等等,这些ORM都有各自的优缺点,大家在选择上呢也是仁者见仁智者见智,其实按自身项目的需求来就好,没有最好的只有最合适的。
就我自身的情况来说用的比较多的还是EF Core,回想过来自己也算是EFCore的忠实粉丝了吧,哈哈哈!
最近在倒腾EF Core官网时,看到在最新的EFCore6.0的Priview4中EFCore开发团队对于EFCore性能的提升,EFCore6会比EFCore5快了70%,以及在执行查询的速度方面提高了31%,堆分配减少了43%。在 TechEmpower Fortunes 基准测试中,对比Dapper和EF Core之间的差距从55%缩小到略低于5%。到此,我们可以好好展望展望EF Core7了。
对这方面感兴趣的同学可自行前往官网了解:
EF Core6.0的新增功能
宣布推出 Entity Framework Core 6.0 预览版 4:性能版本
看到这里,那些一直想用EF Core又担心EF Core性能达不到项目要求的同学,现在可以大胆的用起来了。

本篇教程我会站在小白的视角来教大家一步步使用EF Core,并且会按照项目开发的标准来,同学们可以直接应用到实际项目中
当然,如果前来拜访的是行业大佬,那咱借一步说话,就不班门弄斧了。
如果是之前对EF Core不了解的同学那亦可在此稍作停留,喝喝茶,嗑嗑瓜子,听我娓娓道来。

技术准备

  • Visual studio 2022
  • .Net Core 6
  • EF Core 6
  • SQL Server

搭建项目

创建项目

打开Visual studio2022,选择ASP.NET Core空项目基于.Net6 创建

EFCore 6.0入门看这篇就够了

EFCore 6.0入门看这篇就够了

注:.Net 6已将Startup.cs文件和Program.cs统一到单个Program.cs文件中
想了解.Net6更多变化请移步官网 传送门 .Net 6

EFCore 6.0入门看这篇就够了

安装 Entity Framework Core

我们先来安装几个Nuget包(后续会用到):
Microsoft.EntityFrameworkCore.SqlServer (适用于EF Core SQL Server 提供程序)
Microsoft.EntityFrameworkCore.Design(适用于EF Core .NET Core CLI 工具 )
Microsoft.EntityFrameworkCore.Tools(适用于 EF Core 的包管理器控制台工具)

使用Visual studio NuGet 包管理器控制台安装

入口:工具>NuGet包管理器>程序包管理器控制台

Install-Package Microsoft.EntityFrameworkCore.SqlServer
Install-Package Microsoft.EntityFrameworkCore.Tools
Install-Package Microsoft.EntityFrameworkCore.Design

EFCore 6.0入门看这篇就够了

使用NuGet 包管理器安装

EFCore 6.0入门看这篇就够了

EFCore 6.0入门看这篇就够了

创建实体类

Blog与Post建立一对多的关系
Blog.cs

EFCore 6.0入门看这篇就够了


Post.cs

EFCore 6.0入门看这篇就够了

创建上下文类

注:数据库上下文类是为给定数据模型协调 EF Core 功能的主类。 上下文派生自 Microsoft.EntityFrameworkCore.DbContext。 上下文指定数据模型中包含哪些实体。

新建BloggingContext.cs,然后继承DbContext

EFCore 6.0入门看这篇就够了

然后我们需要将我们的BloggingDbContext的配置传递给DbContext

ApplicationDbContext 类必须公开具有 DbContextOptions 参数的公共构造函数。 这是将 AddDbContext 的上下文配置传递到 DbContext 的方式

EFCore 6.0入门看这篇就够了

这样配置后,BloggingDbContext可以通过构造函数注入在 ASP.NET Core 控制器或其他服务中使用:
例如:

EFCore 6.0入门看这篇就够了

我们需要通过上下文中的DbSet属性将我们的模型加入上下文中,并且公开它们

由于一个实体集包含多个实体,因此许多开发人员更倾向于使用复数形式的 DBSet 属性名称

  • 将为每个实体集创建一个 DbSet 属性。 在 EF Core 术语中:
    • 实体集通常对应数据库表。
    • 实体对应表中的行。

EFCore 6.0入门看这篇就够了

我们重写OnModelCreaTing方法来进一步配置我们刚刚我们往上下文中加入的实体

EFCore 6.0入门看这篇就够了

这里有几种方式配置(推荐方法二),此处采用Fluent API方式配置,也可采用数据注释方式(不建议)
详见官网EF Core实体类型配置
(1)可以直接堆在OnModelCreaTing中(不推荐):

EFCore 6.0入门看这篇就够了


(2)通过IEntityTypeConfiguration配置(推荐)
我们给对应实体建立对应的EntityTypeConfiguration配置文件
BlogEntityTypeConfiguration.cs

EFCore 6.0入门看这篇就够了


PostEntityTypeConfiguration.cs

EFCore 6.0入门看这篇就够了


BloggingContext.cs

EFCore 6.0入门看这篇就够了


更多关于Fluent API的配置 请移步官网查看创建模型

注入DbContext

Program.cs

EFCore 6.0入门看这篇就够了


appsetTings.Development.json 自行配置数据库连接字符串

EFCore 6.0入门看这篇就够了

使用COde First 根据实体生成数据库

打开程序包管理控制台

第一步生成迁移文件:
这里有几个需要注意的地方
(1)解决方案能够编译通过
(2)将目标项目设为启动项
(3)程序包管理控制台中的默认项目一栏选择目标项目

Add-Migration Init 直接回车即可

EFCore 6.0入门看这篇就够了


第二步将生成的迁移文件执行到DB中即可

输入 update-database 直接回车即可

@H_728_197@


出现Done 则为执行完毕

EFCore 6.0入门看这篇就够了


我们可以去查看数据库了

EFCore 6.0入门看这篇就够了


数据库中成功生成了我们配置的对应的表结构。
当然,我们也可以在初始化数据库之前配置种子数据。
感兴趣的同学可以移步官网查看 种子数据设定
配置方法都大差不差

EFCore 6.0入门看这篇就够了

当然 EFCore 也支持DBFirst,您可以通过数据库中已存在的表结构来生成的实体
由于本文篇幅有限,关于DBFirst您可以选择去官网学习,也可以等我后续文章。

结尾

文章如有不妥之处,欢迎大家指正。
后续还会分享关于EF Core在项目中使用经验的文章,包括踩坑以及优化方面,欢迎大家关注!

大佬总结

以上是大佬教程为你收集整理的EFCore 6.0入门看这篇就够了全部内容,希望文章能够帮你解决EFCore 6.0入门看这篇就够了所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: