在ASP.NET Core中自定义IdentityUserRole

时间:2018-02-07 12:44:16

标签: c# asp.net-core entity-framework-core asp.net-core-identity

在我的asp dotnet核心应用程序中,我将默认IdentityUserIdentityRole更改为我自己的班级MesUserMesRole

public class MesUser : IdentityUser<int>, IUser
{
    #region Property

    /// <summary>
    /// Osobní číslo
    /// </summary>
    [Column("ID")]
    public override int Id { get; set; }

    /// <summary>
    /// Křestní jméno
    /// </summary>
    [Column("FIRST_NAME")]
    public string FirstName { get; set; }

并在dbcontext

中设置它
public DbSet<MesUser> MesUsers { get; set; }

protected override void OnModelCreating(ModelBuilder builder)
{
    base.OnModelCreating(builder);

    builder.Entity<MesUser>().ToTable("COR_USERS").HasKey(t => t.Id);

但是如果我对任何其他Identity类做类似的事情,我会收到错误消息:

  

无法在'MesRoleUser'上配置密钥,因为它是派生的   类型。必须在根类型上配置密钥   'IdentityUserRole'。如果你不打算   'IdentityUserRole'将包含在模型中,确保它是   不包含在上下文中的DbSet属性中,在a中引用   配置调用ModelBuilder,或从导航引用   属性中包含的类型的属性。

1 个答案:

答案 0 :(得分:0)

我知道只是链接不是规则,但通过关注this,您将学到:

  • 如何更改用户密钥类型,
    • 特别是您不需要覆盖成员
  • 在身份中更改用户的密钥类型涉及许多类中的更改。