【发布时间】:2018-04-25 05:48:27
【问题描述】:
我决定使用 .NET Core 2,但遇到了问题。微软文档说导航属性不再存在于基类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>>();
并将其添加到我的模型构建器中:
builder.Entity<ApplicationUser>()
.HasMany(e => e.Claims)
.WithOne()
.HasForeignKey(e => e.UserId)
.IsRequired()
.OnDelete(DeleteBehavior.Cascade);
builder.Entity<ApplicationUser>()
.HasMany(e => e.Logins)
.WithOne()
.HasForeignKey(e => e.UserId)
.IsRequired()
.OnDelete(DeleteBehavior.Cascade);
builder.Entity<ApplicationUser>()
.HasMany(e => e.Roles)
.WithOne()
.HasForeignKey(e => e.UserId)
.IsRequired()
.OnDelete(DeleteBehavior.Cascade);
我收到错误The entity type 'IdentityUserLogin<int>' requires a primary key to be defined.
相关的微软文档在这里:https://docs.microsoft.com/en-us/aspnet/core/migration/1x-to-2x/identity-2x
如何获取User.Role 的值以显示在我的视图中?
【问题讨论】:
标签: c# asp.net-core asp.net-identity