跟着官网学ASP.NETCore6.0之通过EF(跟着官网学ASP.NETCore6.0之通过EF)

前面,我们跟着微软官网教程,创建了一个简单的Demo Webapi程序,这节,我们继续跟着教程学一下简单的EF Core操作数据库

连接数据库自然需要相应的数据库驱动,在微软官方也给我列出了相应数据库的驱动程序,如下图:

跟着官网学ASP.NETCore6.0之通过EF(跟着官网学ASP.NETCore6.0之通过EF)(1)

跟着官网学ASP.NETCore6.0之通过EF(跟着官网学ASP.NETCore6.0之通过EF)(2)

这里我的数据库是MySQL 8.0.24,所以需要安装Pomelo.EntityFrameworkCore.MySql,它支持MySQL和MariaDB。

安装MySQL驱动

安装NuGet包方式有多种,如直接在包命令行输入Install-Package Pomelo.EntityFrameworkCore.MySql -Version 6.0.0进行安装,或者通过.NET CLI执行dotnet add package Pomelo.EntityFrameworkCore.MySql --version 6.0.0进行安装,又或者在.csproj中加入<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="6.0.0" />进行安装,等等。当然我还是比较喜欢图形化操作,在VS中依赖项(右键)->选择NuGet程序包->输入Pomelo.EntityFrameworkCore.MySql回车搜索->点击安装

跟着官网学ASP.NETCore6.0之通过EF(跟着官网学ASP.NETCore6.0之通过EF)(3)

跟着官网学ASP.NETCore6.0之通过EF(跟着官网学ASP.NETCore6.0之通过EF)(4)

跟着官网学ASP.NETCore6.0之通过EF(跟着官网学ASP.NETCore6.0之通过EF)(5)

配置数据库

我们先在appsettings.json增加数据库连接,如下:

1 2 3 4 5 6 7 8 9 10 11 12 13

{ "Logging": { "LogLevel": { "Default": "Information", "Microsoft.AspNetCore": "Warning" } }, "AllowedHosts": "*", "ConnectionStrings": { "MysqlConnectionString": "Server=localhost;User=hrp;Password=hrp123456*;Database=hrp" } }

继续去Program.cs配置数据库

1 2 3 4 5 6

var serverVersion = new MySqlServerVersion(new Version(8, 0, 24)); string connectionString = builder.Configuration.GetConnectionString("MysqlConnectionString"); builder.Services.AddDbContext<DemoContext>(opt => { opt.UseMySql(connectionString, serverVersion); });

跟着官网学ASP.NETCore6.0之通过EF(跟着官网学ASP.NETCore6.0之通过EF)(6)

支持,数据库便配置好了,我接下来便是迁移数据库

迁移数据库

这里我们从工具->NuGet包管理器->程序包管理器控制台,执行Add-Migration InitialCreate命令

跟着官网学ASP.NETCore6.0之通过EF(跟着官网学ASP.NETCore6.0之通过EF)(7)

跟着官网学ASP.NETCore6.0之通过EF(跟着官网学ASP.NETCore6.0之通过EF)(8)

执行成功后,会在项目下生成迁移文件,并且会在数据库中创建一个名为__efmigrationshistory的记录表

跟着官网学ASP.NETCore6.0之通过EF(跟着官网学ASP.NETCore6.0之通过EF)(9)

跟着官网学ASP.NETCore6.0之通过EF(跟着官网学ASP.NETCore6.0之通过EF)(10)

我们打开20220116090024_InitialCreate即可看到生成好的迁移代码,我们可以看到,Id列为MySqlValueGenerationStrategy.IdentityColumn,会自动生成为Id递增。我们在程序包管理器控制台继续执行Update-Database命令,它便会帮我们在数据库中创建好表

跟着官网学ASP.NETCore6.0之通过EF(跟着官网学ASP.NETCore6.0之通过EF)(11)

跟着官网学ASP.NETCore6.0之通过EF(跟着官网学ASP.NETCore6.0之通过EF)(12)

跟着官网学ASP.NETCore6.0之通过EF(跟着官网学ASP.NETCore6.0之通过EF)(13)

跟着官网学ASP.NETCore6.0之通过EF(跟着官网学ASP.NETCore6.0之通过EF)(14)

这些字段名和字段类型及长度是可以指定的,这个后面再详细学习

测试WebApi

数据库已连接,数据库中的表也已生成好,那么接下来就去测试下我们的API能否正常工作。

新增数据

跟着官网学ASP.NETCore6.0之通过EF(跟着官网学ASP.NETCore6.0之通过EF)(15)

跟着官网学ASP.NETCore6.0之通过EF(跟着官网学ASP.NETCore6.0之通过EF)(16)

跟着官网学ASP.NETCore6.0之通过EF(跟着官网学ASP.NETCore6.0之通过EF)(17)

查询数据

跟着官网学ASP.NETCore6.0之通过EF(跟着官网学ASP.NETCore6.0之通过EF)(18)

跟着官网学ASP.NETCore6.0之通过EF(跟着官网学ASP.NETCore6.0之通过EF)(19)

跟着官网学ASP.NETCore6.0之通过EF(跟着官网学ASP.NETCore6.0之通过EF)(20)

这一节,我们简单的了解了一下ASP.NET Core 6.0通过EF Core6.0来操作MySQL数据库,下一节,我们继续学习ASP.NET Core 6.0打印日志。

EF Core功能很是强大,并不是通过几个简单的操作就能学习得完的,后面我们抽时间继续深入一下。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页