私のアプリはIdentityDbContext
の参照エラーで.NETコアの3.0リリースで壊れました。コア3.0のIdentityのドキュメントを調べていますが、IdentityDbContextが存在する必要があることを意味しています。これは、いくつかのDbContext
エラーで発生する唯一のエラーです。
私は非常にシンプルなAPIを使用していますが、MVCビューはありません。JSONオブジェクトを返すデータサーバーだけです。 Identityに基づいているため、ユーザー、ロール、クレームがあります。そしてそれはそれを利用し始めています。私のメインのDbContextはIdentityDbContext<ApplicationUser>
を拡張しますが、アップグレード後にターゲットプラットフォームを3.0に切り替えた後、それは存在せず、コンパイルエラーが表示されます。誰かがこれに遭遇しましたか?何か不足していますか?移行および変更の変更ページには、私の問題に対処するものは何もないようです。
DbContextは次のようになります。
using System;
using Microsoft.AspNetCore.Identity;
//using Microsoft.AspNetCore.Identity.EntityFrameworkCore; <- this no longer works either
using Microsoft.EntityFrameworkCore; //<- this I had to download as a package
using App.Constants;
using App.Models.Identity;
namespace App.Models
{
public class AppContext : IdentityDbContext<ApplicationUser> //<- error is right here
{
... my models
}
}
ASP.NET Core 3.0では、Entity Framework Core
およびIdentity
関連パッケージがMicrosoft.AspNetCore.App
メタパッケージから削除されました。したがって、これらのパッケージを個別に追加する必要があります。
次のPackageReference
sをプロジェクトの.csproj
ファイルに次のように追加します。
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="3.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="3.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Identity.UI" Version="3.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.0.0" />
</ItemGroup>
今それは動作します!