c# - ASP.net Identity 自定义用户模型未被角色、声明和登录表使用

标签 c# entity-framework-6 asp.net-web-api2 asp.net-identity-2

我正在使用像这样的自定义用户模型:

 public class ApplicationUser : IdentityUser
 {
    public string Firstname { get; set; }
    ...
 }

身份系统创建的其余表有点不同步。创建了一个名为 ApplicationUser_Id 的新列,该列设置在外键处,但仍有一个 UserId 用作复合主键。

Generated tables

ApplicationUser 模型的配置是

public class ApplicationUserConfiguration : EntityTypeConfiguration<ApplicationUser>
{
    public ApplicationUserConfiguration()
    {
        this.ToTable("AspNetUsers");
        this.Property(u => u.Firstname).IsRequired().HasMaxLength(100);
        this.Property(u => u.Lastname).IsRequired().HasMaxLength(100);
    }
}

我如何告诉 EF 继续使用 UserId 作为外键并删除 ApplicationUser_Id?

谢谢

更新: 在我为 ApplicationUser 添加自定义配置之前按预期工作。

DataContext.cs

modelBuilder.Configurations.Add(new ApplicationUserConfiguration());

应用用户配置.cs

public class ApplicationUserConfiguration : EntityTypeConfiguration<ApplicationUser>
{
    public ApplicationUserConfiguration()
    {
        this.ToTable("AspNetUsers");
        this.Property(u => u.Firstname).IsRequired().HasMaxLength(100);
        this.Property(u => u.Lastname).IsRequired().HasMaxLength(100);
    }
}

最佳答案

我确实重现了这个问题,然后我通过添加 modelBuilder.Configurations.Add(new ApplicationUserConfiguration()); 修复了它 前 base.OnModelCreating(模型构建器); 所以现在的功能

  protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Configurations.Add(new ApplicationUserConfiguration());
        base.OnModelCreating(modelBuilder);

    }

关于c# - ASP.net Identity 自定义用户模型未被角色、声明和登录表使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34658411/

相关文章:

c# - 来自 SQLiteConnection 对象的 SQLite .dump 命令

c# - 在 Silverlight 中调用 Dispatcher.CheckAccess() 是好的形式吗?

c# - EF Code First CREATE DATABASE 权限在数据库 'master' 中被拒绝

c# - 在基于 .Net 4.6 的 Web Api 2 中使用 System.IdentityModel.Tokens.Jwt 5.0.0.127 的异常

c# - 如何使用 MoQ 和 NUnit 在 WebAPI 2 中为 ExceptionHandler 编写单元测试

c# - 使用选项卡在 Windows 窗体应用程序上保持代码整洁

c# - 将文本修剪为特定大小

c# - Entity Framework - 在程序集中找不到迁移配置类型

mysql - 如何在 ASP.NET 5 中将 Entity Framework 6 与 MySQL 一起使用?

c# - StatusCodeResult 或 ResponseMessageResult