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

原文地址:https://www.cnblogs.com/wl-blog/p/15292387.html