ccruiの博客

ccruiの博客

跟着官网学ASP. NET Core 6.0之通过EF Core6.0操作数据库

33
2022-03-06

跟着官网学ASP. NET Core 6.0之通过EF Core6.0操作数据库

转载于跟着官网学ASP. NET Core 6.0之通过EF Core6.0操作数据库

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

安装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回车搜索->点击安装


配置数据库

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

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "AllowedHosts": "*",

  "ConnectionStrings": {
    "MysqlConnectionString": "Server=47.99.***.***;User=***;Password=***;Database=***"
  }

}

继续去Program.cs配置数据库

///new Version(5, 5, 62)为MySql版本号
var serverVersion = new MySqlServerVersion(new Version(5, 5, 62));
string connectionString = builder.Configuration.GetConnectionString("MysqlConnectionString");
builder.Services.AddDbContext<DrugContext>(opt =>
{
    opt.UseMySql(connectionString, serverVersion);
});

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

迁移数据库

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


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


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




测试WebApi

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