EF FRAMEWORK 至 EF CORE的遷移筆記(圖文教程)

一、項目升級

1、使用VS2019打開舊有項目

2、升級NUGET的引用

右擊,項目中的文件packages.config,出現如下圖 ,點擊高亮選中項:

3、修改項目文件.csproj

1、卸載項目

2、右鍵編輯項目的.csproject

3、刪除所有內容

4、添加如下代碼 ,並重新加載項目:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>netcoreapp3.0</TargetFramework>
  </PropertyGroup>
</Project>

二、EF的升級

1、調整爲DI注入模式

1、修正構件函數調整爲:

2、WEB項目的Startup.cs文件中添加如下代碼(示例中添加的是sqllite的數據庫連接):

2、遷移方法的變更

1、右擊,DBCONTEXT所在的項目,編輯項目文件.csproj,添加如下代碼:

<PackageReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.3" />

2、DBCONTEXT所在的項目,添加NUGET引用:Microsoft.EntityFrameworkCore.Tools。

3、在WEB項目或其他調用的項目中,添加NUGET引用:Microsoft.EntityFrameworkCore.Design。

4、程序包管理器控制檯中執行命令:add-migration 你的遷移名稱。完成初次遷移。

三、其他細節配置

1、COOKIES的開啓

在Startup.cs的類中,方法:ConfigureServices中添加如下代碼:

services.Configure<CookiePolicyOptions>(options =>
{
    // This lambda determines whether user consent for non-essential cookies is needed for a given request.
    options.CheckConsentNeeded = context => true;
    options.MinimumSameSitePolicy = SameSiteMode.None;
});
services.AddAuthorization()
    .AddAuthentication(o => o.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme)
    .AddCookie(o =>
    {
        o.Cookie.Name = ".timfeng.cookie";
        o.Cookie.HttpOnly = true;
        o.Cookie.SecurePolicy = CookieSecurePolicy.Always;
    });

在方法:Configure中添加如下代碼:

app.UseCookiePolicy();

2、SESSION的開啓

在Startup.cs的類中,方法:ConfigureServices中添加如下代碼:

services.AddDistributedMemoryCache();
services.AddSession();

在方法:Configure中添加如下代碼:

app.UseSession();

3、API返回JSON值是,使用駝峯命名規則(MVC默認)時的解決方法

在Startup.cs的類中,方法:ConfigureServices中添加如下代碼:

services.AddMvc().AddJsonOptions(opt =>
{
    opt.JsonSerializerOptions.PropertyNamingPolicy =null;
});

四、IIS部署

1、下載IIS環境支持:

下載地址:https://dotnet.microsoft.com/download/dotnet-core,版本選擇:Hosting Bundle。安裝成功後,在IIS模塊下出現如下圖內容:

2、IIS設置

添加網站後,在應用程序池中,要特別設置爲無託管代碼,因爲.NETCORE不需要FRAMEWORK的支持:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章