.NET框架 - NETCORE + API + EF(DBFirst) + MYSQL

.NET框架 - NET6 + API + EF(DBFirst) + MYSQL

1. 创建项目,NETCORE.EF.DBFirst

2. 添加依赖,注意版本应与 NETCORE 框架版本一致

Microsoft.EntityFrameworkCore.Design
Microsoft.EntityFrameworkCore.Tools
Pomelo.EntityFrameworkCore.MySql

3. 生成实体类

使用:Scaffold-DbContext 命令,参考:https://learn.microsoft.com/zh-cn/ef/core/cli/powershell#common-parameters

参数说明如下表所示:

名称含义
-Connection指定数据库的连接字符串
-Provider指定要使用的提供程序。例如Microsoft.EntityFrameworkCore.SqlServer
-OutputDir指定用于输出类的目录。如果省略,则使用顶级项目目录
-ContextDir指定存放DbContext的目录
-Context指定生成的DbContext类的名称
-Schemas指定要为其生成类的模式
-Tables指定要为其生成类的表
-DataAnnotations使用DataAnnotation属性在可能的情况下配置模型
-Force强制脚手架覆盖现有文件
-Project指定实体类和数据库上下文存放在的项目名称
-StartupProject指定启动项目名称
 -UseDatabaseNames使用与数据库中显示的名称完全相同的表、视图、序列和列名称。 如果省略此参数,数据库名称将更改为更符合 C# 名称样式约定。

 

 

 

  

 

 

 

 

 

 

 

 

 

 

打开【工具、Nuget包管理器、程序包管理器控制台】,选择默认项目为当前项目 

Scaffold-DbContext -Connection "server=localhost;userid=root;password=root;database=RailAssist;" -Provider Pomelo.EntityFrameworkCore.MySql -OutputDir Models -ContextDir Context -Context DataBaseAssist -UseDatabaseNames

 

后续如数据库新增或删减表,在命令后加-Force 

Scaffold-DbContext -Connection "server=localhost;userid=root;password=root;database=RailAssist;" -Provider Pomelo.EntityFrameworkCore.MySql -OutputDir Models -ContextDir Context -Context DataBaseAssist -UseDatabaseNames -Force

 

 

 

 

4. 配置文件,appsettings.json

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "AllowedHosts": "*",
  "ConnectionStrings": {
    "MysqlConnection": "server=localhost;userid=root;password=root;database=RailAssist"
  }
}

 

 

5. 在Program类中添加数据上下文对象依赖注入服务

builder.Services.AddControllers();

//  Scaffold-DbContext 'server=localhost;userid=root;password=root;database=large;' Pomelo.EntityFrameworkCore.MySql -OutputDir Models -Context DBContext
//  Scaffold-DbContext 'server=localhost;userid=root;password=root;database=large;' Pomelo.EntityFrameworkCore.MySql -OutputDir Models -Context DBContext -Force
builder.Services.AddDbContext<DBContext>(options => options.UseMySql(builder.Configuration.GetConnectionString("MysqlConnection"), new MySqlServerVersion(new Version(8, 0, 11))));

 

 

6. 增加控制器 测试

    [Route("api/[controller]")]
    [ApiController]
    public class ValuesController : ControllerBase
    {
        private readonly DBContext DB;
        public ValuesController(DBContext db)
        {
            DB = db;
        }
        [HttpGet]
        public async Task<IActionResult> Get()
        {
            var con = await DB.AlogUserfiles.CountAsync();
            return Ok(con);
        }
    }

 

 

 

 

 

 

 

 

 

 

 

 

引用:https://blog.csdn.net/Anoxia_li/article/details/125180997

 引用:https://blog.csdn.net/HerryDong/article/details/128091994

posted @ 2023-07-28 15:43  无心々菜  阅读(135)  评论(0编辑  收藏  举报