ASP.NET Core中使用Mysql并自动生成实体类

一、添加NuGet包

添加以下两个包:

MySql.Data.EntityFrameworkCore

Microsoft.EntityFrameworkCore.Tools

 

二、准备数据库

创建数据库和表,假设数据库的连接字符串为:server=localhost;uid=root;pwd=password;port=3306;database=db_name;

 

三、自动生成实体类

1、在Visual Studio菜单中选择:工具 > NuGet包管理器 > 程序包管理器控制台

2、输入以下命令:

Scaffold-DbContext "server=localhost;uid=root;pwd=password;port=3306;database=db_name;" MySql.Data.EntityFrameworkCore -OutputDir Models

其中,最后的Models表示实体类将生成在Models这个文件夹中。

3、命令完成之后,我们看到Models文件夹中出来了一些跟表名相同的实体类,以及一个数据库名+Context的上下文类。

 

四、上下文注入

1、把连接字符串写到appsettings.json这个文件中,如下所示:

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*",
  "ConnectionStrings": {
    "DataConnection": "server=localhost;uid=root;pwd=password;port=3306;database=db_name;"
  }
}

2、在Startup类的ConfigureServices函数中加入上下文注入:

services.AddDbContext<dataContext>(options =>options.UseMySQL(Configuration.GetConnectionString("DatabaseConnection")));

3、删除上下文类中的配置信息,清空OnConfiguring函数:

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
}

4、最后,一个在Controller中读取表数据的范例为:

[ApiController]
[Route("[controller]")]
public class TestController : ControllerBase
{
    private readonly ILogger<TestController> _logger;
    private readonly dataContext _dataContext;

    public TestController(ILogger<TestController> logger, dataContext db)
    {
        _logger = logger;
        _dataContext = db;
    }

    [HttpGet]
    public IEnumerable<Student> Get()
    {
        return _dataContext.Set<Student>().ToList();
    }
}

 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值