.NET6 搭建webapi项目
后台-插件-广告管理-内容页头部广告(手机) |
.NET6 搭建webapi项目
1. 创建项目
保持默认选项
点击创建即可,创建webapi项目
2. 修改返回数据的时间格式
修改时间格式:
nuget安装 Microsoft.AspNetCore.Mvc.NewtonsoftJson只需要在Program.cs 文件下添加几行代码
找到 `builder.Services.AddControllers()`代码如下:
builder.Services.AddControllers() .AddNewtonsoftJson(options => { options.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss"; //格式化时间 });修改后的效果:
3. 开启Swagger 注释
打开Xml文件生成,右键项目进入属性设置:
取消未进行注释而进行提示的警告:
然后Progarm.cs 添加如下代码
builder.Services.AddSwaggerGen(options => { //获取xml文件名称 var xmlFileName = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml"; //包含注释,第二个参数表示是否显示控制器注释 options.IncludeXmlComments(Path.Combine(AppContext.BaseDirectory, xmlFileName), true); });在测试控制器中添加注释进行测试:
4. 添加版本控制
首先创建一个枚举类:
namespace MES.API { ///然后Progarm.cs 添加如下代码 :
//显示多个文档 typeof(APIVersion).GetEnumNames().ToList().ForEach(version => { //添加文档介绍 options.SwaggerDoc(version, new OpenApiInfo { Title = "工厂MES系统项目", Version = version.ToString(), Description = $"工厂MES系统项目:{version}版本" }); });还有下面的代码
//版本切换 app.UseSwaggerUI(options => { typeof(APIVersion).GetEnumNames().ToList().ForEach(version => { options.SwaggerEndpoint($"/swagger/{version}/swagger.json", $"版本选择:{version}"); }); });在测试控制器方法中添加版本控制特性:
运行测试效果:
5. 安装EF Core相关的依赖包
注意版本:
Microsoft.EntityFrameworkCore 6.0.14 Microsoft.EntityFrameworkCore.Design 6.0.14 Microsoft.EntityFrameworkCore.Tools 6.0.14 Pomelo.EntityFrameworkCore.MySql 6.0.26. 配置DbContext
1、新建一个SqlDbContext类,继承DbContext数据上下文类
2、构造函数注入DbContextOptions,使用:base()语法,传入DbContextOptions到基类
3、关于EF Core性能优化,重写OnConfiguring函数
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { //全局关闭EF Core数据跟踪 optionsBuilder.UseQueryTrackingBehavior(QueryTrackingBehavior.NoTracking); //关闭所有查询的状态跟踪 //optionsBuilder.UseLazyLoadingProxies(); //启用延迟加载 base.OnConfiguring(optionsBuilder); }
四、Program.cs 启动类
1、配置DbContext数据库连接字符串
#region WebApi项目配置 builder.Services.AddDbContext<SqlDbContext>(options => { var connectionString = configuration.GetConnectionString("strConn"); var serverVersion = ServerVersion.AutoDetect(connectionString); // MySql options.UseMySql(connectionString, serverVersion); }); #endregion2、注意这里的连接字符串是从appsetting.json文件中获取的,ConnectionStrings节点下的strConn
//数据库连接字符串 "ConnectionStrings": { "strConn": "server=localhost;port=端口号;database=数据库名称;uid=账号;password=密码;" },7. 生成数据库
1、首先打开SqlDbContext.cs类,添加以下属性
public virtual DbSet<Picture> Pictures { get; set; }1.首先执行添加迁移
add-migration CreateTable_v1.02.然后执行
update-database无报错无异常,那么我们的数据库就生成成功了,Picture表同样创建成功!
参考地址:https://www.yii666.com/blog/402342.html
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。
在线投稿:投稿 站长QQ:1888636
后台-插件-广告管理-内容页尾部广告(手机) |