身份 asp.net 核心 3.0 - 未找到 IdentityDbContext

Identity asp.net core 3.0 - IdentityDbContext not found

我的应用程序与 .NET Core 3.0 版本中断,并出现 IdentityDbContext 的引用错误。我正在查看 Identity on core 3.0 的文档,但这意味着 IdentityDbContext 应该在那里。这是我遇到的唯一错误,有几个 DbContext 个错误。

我有一个非常简单的 API,没有 MVC 视图,只有一个返回 JSON 对象的数据服务器。它基于身份,因此它具有用户、角色和声明。它开始利用这一点。我的主要 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 CoreIdentity 相关包已从 Microsoft.AspNetCore.App 元包中删除。所以你必须单独添加这些包。

将以下 PackageReference 添加到项目的 .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>

现在可以使用了!

更多详情:Assemblies removed from the ASP.NET Core shared framework

如果您遇到类似 "error CS0246: The type or namespace name 'IdentityDbContext' could not be found" 的错误 您可以为 asp.net web api 3 项目

安装以下软件包

dotnet 添加包 Microsoft.AspNetCore.Identity.EntityFrameworkCore --version 5.0.0-preview.3.20215.14 在 dotnet cli.its 为我工作。

安装包Microsoft.AspNetCore.Identity.EntityFrameworkCore-版本 5.0.0-preview.3.20215.14 这是包管理器