身份ASP.NET Core 3.0-找不到IdentityDbContext

时间:2019-09-25 01:56:52

标签: c# asp.net-core asp.net-core-3.0

我的应用打破了.NET Core 3.0版本,出现了IdentityDbContext的参考错误。我正在浏览核心3.0上的Identity的文档,但这意味着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
    }
}

2 个答案:

答案 0 :(得分:14)

ASP.NET Core 3.0 中,与Entity Framework CoreIdentity相关的软件包已从Microsoft.AspNetCore.App元软件包中删除。因此,您必须单独添加这些软件包。

将以下PackageReference添加到项目的.csproj文件中,如下所示:

<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" />

现在可以使用了!

有关更多详细信息:Assemblies removed from the ASP.NET Core shared framework

答案 1 :(得分:0)

如果您遇到类似“错误CS0246的错误:找不到类型或名称空间名称'IdentityDbContext'” 您可以为asp.net Web api 3项目安装波纹管软件包

dotnet添加软件包Microsoft.AspNetCore.Identity.EntityFrameworkCore --version 5.0.0-preview.3.20215.14 在dotnet cli.it中对我有用。

安装软件包Microsoft.AspNetCore.Identity.EntityFrameworkCore-版本5.0.0-preview.3.20215.14 这是给包裹经理的