NetCore2.2升级到3.1总结

最近公司要求netcore版本从2.2升级到3.1,升级需要修改的配置项和遇到的问题我这边做一个简单的总结。 

可参考资料:

https://docs.microsoft.com/zh-cn/aspnet/core/migration/22-to-30?view=aspnetcore-5.0&tabs=visual-studio

https://docs.microsoft.com/zh-cn/ef/core/what-is-new/ef-core-3.x/breaking-changes 

 

netcore3.1 下载:

https://dotnet.microsoft.com/download/dotnet/3.1 

升级之后使用VS2019以及以上版本哦

 

一、   配置项修改 

  1. 1.       netcore版本修改为3.1  

      

 

2.       Nuget包升级

         (1)删除包:   Microsoft.AspNetCore.App

    (2)删除包:Microsoft.AspNetCore.Razor.Design

    (3)升级包版本:Swashbuckle.AspNetCore 升级到5.0.0及以上

 

  1. 3.      Program类修改

 IWebHostBuilder 修改为IHostBuilder  

 

 代码如下: 

 View Code

 

  1. 4.       Startup类修改: 

  (1)  IHostingEnvironment修改为IWebHostEnvironment      

    

       

    (2)  ConfigureServices方法返回结果由IServiceProvider修改为void 

    

 

     (3)  services.AddMvc()修改为  services.AddControllers().AddNewtonsoftJson()  

    

    注意:方法名结尾的async会自动取消。

   比如:定义的方法名为SearchMemberAsync(),但是在请求方法SearchMemberAsync时提示没有此方法 ,请求SearchMember方法时却请求成功 

   为了方法名结尾不取消async,配置SuppressAsyncSuffixInActionNames参数为false。

 

  代码如下:

 View Code

  

    (4)  swagger配置修改:    

      

       

 代码如下:  

 View Code

  

(5) return services.AddDynamicEF 删除return    

 

      

     (6) app.UseMvc修改为app.UseEndpoints 

 

      

  代码如下:  

 View Code

 

(7)  删除app.UseDeveloperExceptionPage();

  添加app.UseRouting();

 

 

 5.       视图:由以前的DbQuery修改为 DbSet     

     

        并添加以下配置: 

 

     

  代码如下: 

 View Code

   

6.       Map映射问题

        使用映射必须在数据源或者映射源上面标记AutoMap特性

     

     

     

 

7.        表名列名转换写法变化   

     

 

  1. 8.       枚举DisplayName特征的获取 

   由[DisplayName(" ")]特征 修改为[Display(Name=" ")]         

     

            

      

二、    遇到的问题 

        1.                  

     

    报错提示:  

    

 

2.           GroupBy写法问题:

             GroupBy在分组之后没有使用select指定查询的列,就会报错。因为此写法法生成不了sql语句。           

 

3.           语句中使用了判断表字段是否是非空使用了IsEmpty        

     

   

 

 参照以下写法是可以生成sql语句的:  

     

 https://www.cnblogs.com/yaoxiaodan/p/15263204.html

posted @   dreamw  阅读(287)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示