C# Can';t继承自ASP.NET Core 2.0中的IdentityUser和IdentityRole
我正在尝试完成对.NET Core 2.0的更新,但出现了几个错误: 问题: 我有两个类,ApplicationRole和ApplicationUser,它们从IdentityRole和IdentityUser继承了一些属性 更新到Core2.0后,我发现以下错误,声称找不到IdentityRole和IdentityUser 但是,新版本的.NET Core中安装了包Microsoft.AspNetCore.Identity.EntityFrameworkCore 2.0 关于识别码: 信息1: 找不到类型或命名空间名称“IdentityRole”(是否缺少using指令或程序集引用?) 信息2: “Application.Models.ApplicationRole”类型不能用作泛型类型或方法“IdentityDbContext”中“TRole”类型的参数。没有从“Application.Models.ApplicationRole”到“Microsoft.AspNetCore.Identity.IdentityRole”的隐式引用转换 应用程序角色的定义: 关于标识用户: 信息1: 找不到类型或命名空间名称“IdentityUser”(是否缺少using指令或程序集引用?) 信息2: “Application.Models.ApplicationUser”类型不能用作泛型类型或方法“IdentityDbContext”中“TUser”类型的参数。没有从“Application.Models.ApplicationUser”到“Microsoft.AspNetCore.Identity.IdentityUser”的隐式引用转换 应用程序用户的定义 以下是定义此类及其使用的指南: 随着对Core 2.0的更改,我想知道IdentityRole和IdentityUser是如何更改的,这样我就不能再继承它们了。解决了 保存这些类的包C# Can';t继承自ASP.NET Core 2.0中的IdentityUser和IdentityRole,c#,asp.net,.net,C#,Asp.net,.net,我正在尝试完成对.NET Core 2.0的更新,但出现了几个错误: 问题: 我有两个类,ApplicationRole和ApplicationUser,它们从IdentityRole和IdentityUser继承了一些属性 更新到Core2.0后,我发现以下错误,声称找不到IdentityRole和IdentityUser 但是,新版本的.NET Core中安装了包Microsoft.AspNetCore.Identity.EntityFrameworkCore 2.0 关于识别码: 信息1:
Microsoft.AspNetCore.Identity.EntityFrameworkCore
已更改。要访问这些类别(IdentityUser
和IdentityRole
),必须添加
using Microsoft.AspNetCore.Identity;
这样,问题就消失了。ICollection角色
,ICollection声明
和ICollection登录
导航属性已从Microsoft.AspNetCore.Identity.IdentityUser
中删除
您应该手动定义它们
public class MyUser : IdentityUser
{
public virtual ICollection<IdentityUserRole<int>> Roles { get; } = new List<IdentityUserRole<int>>();
public virtual ICollection<IdentityUserClaim<int>> Claims { get; } = new List<IdentityUserClaim<int>>();
public virtual ICollection<IdentityUserLogin<int>> Logins { get; } = new List<IdentityUserLogin<int>>();
}
这种情况发生在我身上,但我在传统的.net框架中使用Asp.net内核。您需要添加Nuget包
Microsoft.Extensions.Identity
。它包含类IdentityUser
和IdentityRole
我认为您必须添加此项的原因是您的项目未使用Microsoft.AspNetCore.All软件包。对我来说,通过安装软件包解决了此问题:
Microsoft.Extensions.Identity.Stores
您需要安装Microsoft.AspNetCore.Identity.EntityFramework软件包
Install-Package Microsoft.AspNetCore.Identity.EntityFramework
或
您知道如何在.Net Core 2.0上使用角色了吗?如果是的话,你能给我一个建议吗example@YTerle回顾新的答案。如果有人来自未来的3.1版本,这肯定是一个比你需要安装。
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
builder.Entity<MyUser>()
.HasMany(e => e.Claims)
.WithOne()
.HasForeignKey(e => e.UserId)
.IsRequired()
.OnDelete(DeleteBehavior.Cascade);
builder.Entity<MyUser>()
.HasMany(e => e.Logins)
.WithOne()
.HasForeignKey(e => e.UserId)
.IsRequired()
.OnDelete(DeleteBehavior.Cascade);
builder.Entity<MyUser>()
.HasMany(e => e.Roles)
.WithOne()
.HasForeignKey(e => e.UserId)
.IsRequired()
.OnDelete(DeleteBehavior.Cascade);
}
Microsoft.Extensions.Identity.Stores
Install-Package Microsoft.AspNetCore.Identity.EntityFramework
dotnet add package Microsoft.AspNetCore.Identity.EntityFramework