.Net 6.0中快速上手EF Core之DBFirst

背景:

EF Core 是一个非常优秀ORM框架,它的存在大大提高了我们开发人员的效率,在EFCore出世之前的EF 已经相当炸裂了,但性能却是这个ORM框架最大的瓶颈,不管你需不需要的关联表都会给你查出来,现在EF Core就完美的解决了这个问题!EF Core也深受广大开发者的喜爱,今天就让我来带你快速上手EF Core吧!!!

环境:

本章节使用的环境是.Net 6.0和SQL Server 2019

接下来我们开始正题!

1.首先我们需要下载几个Nuget的包

【程序包管理控制台】(位置:工具->NuGet 包管理器->程序包管理控制台),选择【默认项目】,输入以下命令安装依赖

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

2.通过控制台生成对应的Entity(Model)

注意:在控制台生成Entity时一定要选择好对应的程序集哦,请看下图与代码

1 //Entity是指生成的位置,BlogDBContext是自定义DBContext的名称
2 Scaffold-DbContext 'Data Source=服务地址;Initial Catalog=数据库;User Id=用户名;Password=密码; integrated security=false;Encrypt=True;TrustServerCertificate=True;' Microsoft.EntityFrameworkCore.SqlServer -OutputDir Entity -Context BlogDBContext

当数据库中表发生更改时,可以直接使用下面命令在Nuget控制台中直接Entity

1 Scaffold-DbContext 'Data Source=服务地址;Initial Catalog=Blog;User Id=用户名;Password=密码; integrated security=false;Encrypt=True;TrustServerCertificate=True;' Microsoft.EntityFrameworkCore.SqlServer -OutputDir Entity -Context BlogDBContext -Force

 3.在配置连接字符串

在appsettings.json文件中配置连接字符串

//连接字符串
  "ConnectionStrings": {
    "DBEquipment": "Data Source=服务地址;Initial Catalog=Blog;User Id=用户名;Password=密码;integrated security=True;Encrypt=True;TrustServerCertificate=True;' "
  }

4.在Program类中注入上下文对象并从appsettings.json文件中读取连接字符串

1 using Microsoft.EntityFrameworkCore;
2 //添加DBContext
3 builder.Services.AddDbContext<BlogDBContext>(options => options.UseSqlServer(builder.Configuration.GetConnectionString("DBEquipment")));

 

 完成上述操作之后,我们就可以通过EF Core 操作数据库表进行CRUD啦,接下来让我们写一个测试的查询接口

5.如何使用:

这里比较简单,直接上代码和效果图!

 1 /// <summary>
 2     /// 用户Web端数据接口
 3     /// </summary>
 4     [Route("api/[controller]")]
 5     [ApiController]
 6     public class SysUserWebApiController : ControllerBase
 7     {
 8         private readonly BlogDBContext _blogDBContext;
 9         public SysUserWebApiController(BlogDBContext blogDBContext)
10         {
11             _blogDBContext=blogDBContext;
12         }
13 
14         /// <summary>
15         /// 获取列表 --测试接口
16         /// </summary>
17         /// <returns></returns>
18         [HttpGet("GetListTest")]
19         public IActionResult GetListTest() 
20         {
21             var result =_blogDBContext.SysUserEntities.ToList();
22             return Ok(new { msg="成功",data= result });
23         }
24     }

 

 好了,今天的内容就到这儿了,比较基础简单,跟着本章节应该能很快上手,一些基本的EF Core 语法本章节并未透露,感性去的小伙伴可以去官网查看https://learn.microsoft.com/zh-cn/ef/core/

当然EF Core 可以通过反射和泛型搭建一个非常不错的项目架构,有时间时也会出一篇随笔专门讲述,最后喜欢本章节对各位有所帮助.

posted @ 2023-03-17 13:55  echo_sw  阅读(755)  评论(0编辑  收藏  举报