ASP.NET Core 2.2プロジェクト3.0メモへのアップグレード
7913 ワード
ASP.NET Core 2.2はASPに移行する.NET Core 3.0注意すべき点はこのエッセイに記載されています.
TargetFrameworkをnetcoreapp 3に変更する.0
Webプロジェクト(Microsoft.NET.Sdk.Web)からMicrosoftを削除する.AspNetCore.AppのPackageReference
クラスライブラリプロジェクトの場合、Microsoftがある場合.AspNetCore.AppのPackageReference参照は、FrameworkReferenceに変更する必要があります
またはMicrosoft.NET.SdkをMicrosoftに変更しました.NET.Sdk.Web、OutputTypeをLibraryに設定、詳細は博問を参照
ProgramでWebHostをHostに変更(注:Hostを使用すると小さな穴がありますが、詳しくは博問を参照)
Razor Pagesを使用しない場合はStartup.ConfigureServicesでservices.AddMvc()を
Startupでapp.UseMvc()をappに変更する.UseRouting()とapp.UseEndpoints()
.NET Core 3.0 SDKのdockerミラー
ASP.NET Core 3.0 runtimeのdockerミラー
Web API応答のjsonデータが中国語で符号化される問題(詳細は博問を参照)
Razor Class Libraryプロジェクトの場合.csproj構成
EF Core 3.0一対一の関係の構成(INNER JOIN SQL文の生成)
EF Core 3.0 OwnsOne関係構成注意
EF Plus(Z.EntityFramework.Plus.EFCore)はサポートしていません.NET Core 3.0、詳細は博問を参照
EFCore.BulkExtensionsもサポートしていません.NET Core 3.0ですが、1行のコードを修正するだけでサポートできます.詳細は博問を参照してください.
データベース・サーバがSQL Server 2008を使用し、dockerコンテナ配置を使用している場合はopensslの構成を変更する必要があります.詳細は、博問を参照してください.
【関連リンク】
Breaking changes to Microsoft.AspNetCore.App in 3.0
TargetFrameworkをnetcoreapp 3に変更する.0
<TargetFramework>netcoreapp3.0TargetFramework>
Webプロジェクト(Microsoft.NET.Sdk.Web)からMicrosoftを削除する.AspNetCore.AppのPackageReference
<PackageReference Include="Microsoft.AspNetCore.App" />
クラスライブラリプロジェクトの場合、Microsoftがある場合.AspNetCore.AppのPackageReference参照は、FrameworkReferenceに変更する必要があります
<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App" />
ItemGroup>
またはMicrosoft.NET.SdkをMicrosoftに変更しました.NET.Sdk.Web、OutputTypeをLibraryに設定、詳細は博問を参照
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp3.0TargetFramework>
<OutputType>LibraryOutputType>
PropertyGroup>
Project>
ProgramでWebHostをHostに変更(注:Hostを使用すると小さな穴がありますが、詳しくは博問を参照)
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup();
});
}
Razor Pagesを使用しない場合はStartup.ConfigureServicesでservices.AddMvc()を
services.AddControllers();
Startupでapp.UseMvc()をappに変更する.UseRouting()とapp.UseEndpoints()
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
.NET Core 3.0 SDKのdockerミラー
mcr.microsoft.com/dotnet/core/sdk:3.0
ASP.NET Core 3.0 runtimeのdockerミラー
mcr.microsoft.com/dotnet/core/aspnet:3.0
Web API応答のjsonデータが中国語で符号化される問題(詳細は博問を参照)
services.AddMvc().AddNewtonsoftJson();
Razor Class Libraryプロジェクトの場合.csproj構成
<Project Sdk="Microsoft.NET.Sdk.Razor">
<PropertyGroup>
<TargetFramework>netcoreapp3.0TargetFramework>
<AddRazorSupportForMvc>trueAddRazorSupportForMvc>
PropertyGroup>
<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App" />
ItemGroup>
Project>
EF Core 3.0一対一の関係の構成(INNER JOIN SQL文の生成)
builder.HasOne(p => p.ViewCount)
.WithOne()
.IsRequired()
.HasPrincipalKey(vc => vc.PostId);
EF Core 3.0 OwnsOne関係構成注意
builder.OwnsOne(b => b.ScoreRank, sr =>
{
sr.ToTable("ScoreRank");
sr.HasKey(x => x.BlogId);
//EF Core 3.0
sr.WithOwner().HasForeignKey(x => x.BlogId);
});
EF Plus(Z.EntityFramework.Plus.EFCore)はサポートしていません.NET Core 3.0、詳細は博問を参照
EFCore.BulkExtensionsもサポートしていません.NET Core 3.0ですが、1行のコードを修正するだけでサポートできます.詳細は博問を参照してください.
データベース・サーバがSQL Server 2008を使用し、dockerコンテナ配置を使用している場合はopensslの構成を変更する必要があります.詳細は、博問を参照してください.
【関連リンク】
Breaking changes to Microsoft.AspNetCore.App in 3.0