身份创建没有关系的额外外键

时间:2015-04-29 14:16:25

标签: c# asp.net-mvc ef-code-first asp.net-identity

我已在我的应用中实施了Identity 2.0,但无法获得登录和声明与我的应用用户类相关联。我使用以下方法生成表(和键):

        modelBuilder.Entity<ApplicationUser>().ToTable("User");
        modelBuilder.Entity<ApplicationUser>().Property(p => p.Id).HasColumnName("UserId");

        modelBuilder.Entity<IdentityUserLogin>().ToTable("UserLogin");
        modelBuilder.Entity<IdentityUserLogin>().HasKey<string>(l => l.UserId);

        modelBuilder.Entity<IdentityUserClaim>().ToTable("UserClaim");
        modelBuilder.Entity<IdentityUserClaim>().HasKey<int>(l => l.Id);

        modelBuilder.Entity<IdentityRole>().ToTable("Role");
        modelBuilder.Entity<IdentityRole>().HasKey<string>(r => r.Id);

        modelBuilder.Entity<IdentityUserRole>().ToTable("UserRole");
        modelBuilder.Entity<IdentityUserRole>().HasKey(r => new { r.RoleId, r.UserId });

在通过以下方式存储新声明时,除了已存在的UserId列之外,每个表都会创建一个额外的ApplicationUser_Id列:

    await UserManager.AddClaimAsync(user.Id, tokenClaim);

UserId字段填充了正确的用户ID,但ApplicationUser_Id保持空白,因此当我检索用户时,没有与之关联的声明或登录。我怎么能纠正这个?

0 个答案:

没有答案