我的应用打破了.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
}
}
答案 0 :(得分:14)
在 ASP.NET Core 3.0 中,与Entity Framework Core
和Identity
相关的软件包已从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 这是给包裹经理的