net6 项目搭建及引用框架记录(log4net,autofac,exception,api result,jwt,efcore)七引入efcore
Posted 圆滚滚的胖狸
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了net6 项目搭建及引用框架记录(log4net,autofac,exception,api result,jwt,efcore)七引入efcore相关的知识,希望对你有一定的参考价值。
首先准备好数据库,我用的是阿里云的mysql数据库,准备好相关的数据库连接和用户名密码
vs2022中引入efcore,需要添加vs2022的扩展
在appsetting.json中写入连接字符串。
注意两个问题:一是,server一定是阿里云提供的外网连接地址。二是,要在rds安全中添加本地外网的IP地址到白名单,否则无法连接成功。
下面通过Nuget安装mysql和ef的包
注意哈:vs2022连接mysql,oracle公司的插件基本都已经弃用了,微软推荐了pomelo的这一个
我的数据库已经建立好,我实现的是传统的Modelfist
首先在model项目上点右键,在出现的菜单上点击EF Core工具,再点击反向工程
注意注意:在点击确定前一定要保证数据库连接是正常的,要用mysql的工具去测试一下,否则点击确定后会没有反应。
会在输出栏中看到以下报错信息
如果正常的话,那么你点击确定会看到以下画面。假如你看不到,也可以尝试去安装
mysql-installer-community
我勾选了这些内容。具体使用哪些根据自己的习惯和业务需要
勾选完成后点击确定
系统生成model文件
在program.cs中添加数据库注入
#region 注入数据库
var conn = config.GetConnectionString("AuthDb");
builder.Services.AddEntityFrameworkMySql().AddDbContext<auth_dbContext>(options => options.UseMySql(conn, ServerVersion.Parse("8.0.29-mysql")));
#endregion
然后在TestController中添加依赖注入,添加测试代码
更改后的代码如下
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using NET6Demo.IRepository;
using NET6Demo.IService;
using NET6Demo.Model;
using NET6Demo.Utility.Token;
using System.IdentityModel.Tokens.Jwt;
namespace NET6Demo_WebApi.Controllers
public class TestController : BaseController
private ILogger<TestController> _logger;
private readonly IServiceProvider _provider;
private IUserInfo _user;
private JwtSecurityTokenHandler _jwtHandler;
private TokenHelper _tokenHelper;
private auth_dbContext _dbContext; //添加context依赖注入
public TestController(
ILogger<TestController> logger,
IServiceProvider provider,
IUserInfo user,
JwtSecurityTokenHandler jwtSecurityTokenHandler,
TokenHelper tokenHelper,
auth_dbContext authDbContext) //添加context依赖注入
_logger = logger;
_provider = provider;
_user = user;
_jwtHandler = jwtSecurityTokenHandler;
_tokenHelper = tokenHelper;
_dbContext = authDbContext; //添加context依赖注入
[AllowAnonymous]
[HttpGet("GetTest")]
public async Task<IActionResult> GetTestResult(string userId)
Console.WriteLine("测试一下输出日志");
_logger.LogInformation("日志输出了");
_user = _provider.GetService<IUsers>().GetUser(userId);
//throw new Exception("Test exception");
//return Ok(_user);
//return BadRequest();
//return Ok(_tokenHelper.CreateJwtToken(_user));
var user = _dbContext.Set<tb_info_user>().FirstOrDefault(); //从数据库中获取一个数据
return Ok(user);
然后运行程序,打开swagger,测试API,得到如下结果
成功连接了数据库
至此框架搭建完毕
附:源码下载地址
GitHub - shirley-cat/NET6Demo_WebApi
以上是关于net6 项目搭建及引用框架记录(log4net,autofac,exception,api result,jwt,efcore)七引入efcore的主要内容,如果未能解决你的问题,请参考以下文章
net6 项目搭建及引用框架记录(log4net,autofac,exception,api result,jwt,efcore)二配置log4net
net6 项目搭建及引用框架记录(log4net,autofac,exception,api result,jwt,efcore)六添加身份验证,引入JWT
net6 项目搭建及引用框架记录(log4net,autofac,exception,api result,jwt,efcore)六添加身份验证,引入JWT
net6 项目搭建及引用框架记录(log4net,autofac,exception,api result,jwt,efcore)六添加身份验证,引入JWT
net6 项目搭建及引用框架记录(log4net,autofac,exception,api result,jwt,efcore)一建立项目,使用Swagger
net6 项目搭建及引用框架记录(log4net,autofac,exception,api result,jwt,efcore)一建立项目,使用Swagger