【问题标题】:Why is IdentityUser_ID column of AspNetUserRoles table being set to NULL为什么 AspNetUserRoles 表的 IdentityUser_ID 列设置为 NULL
【发布时间】:2015-07-02 21:33:16
【问题描述】:

我有一个基于 Entity Framework 6.1.0、ASP.NET Identity Core 2.0.0、ASP.NET Identity EntityFramework 2.0.0、ASP.NET Identity OWIN 2.0.0 的解决方案。

当使用 NuGet 升级到最新版本的包(EF 6.1.3,Identity packages rel. 2.2.1)时,我发现AspNetUserRoles 表的IdentityUser_ID 列被设置为NULL,更改用户帐户时。

我看到很少有人提到有同样的问题,但没有找到解决方案的链接。一方面,我不明白为什么首先应该有一个IdentityUser_Id 列,因为它最初包含与UserId 列相同的值。

有没有人在升级这些软件包时遇到过类似的情况,您有什么解决方案来解决这个问题?

【问题讨论】:

  • 您是否使用 db 迁移来修改身份表?您可以发布一些代码吗?尤其是身份模型和您的 DbContext。
  • 是的,我使用数据库迁移。我其实找到了一种方法。很快就会发布答案

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


【解决方案1】:

无法真正解释它为什么起作用,但我在代码中进行了这些更改以克服该问题:

public class MyContext : IdentityDbContext<ApplicationUser>
{
    public MyContext() : base("MyConnection")
    {

    }


    static MyContext()
    {
        Database.SetInitializer<MyContext>(new ApplicationDbInitializer());
    }

    public static MyContext Create()
    {
        return new MyContext();
    }

...和我的 OnModelCreating ...

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
    base.OnModelCreating(modelBuilder);
    modelBuilder.Entity<ApplicationUser>().ToTable("AspNetUsers");

//modelBuilder.Entity<IdentityRole>().HasKey<string>(r => r.Id).ToTable("AspNetRoles");
//modelBuilder.Entity<IdentityUser>().ToTable("AspNetUsers");
//modelBuilder.Entity<IdentityUserLogin>().HasKey(l => new { l.UserId, l.LoginProvider, l.ProviderKey }).ToTable("AspNetUserLogins");
//modelBuilder.Entity<IdentityUserRole>().HasKey(r => new { r.RoleId, r.UserId }).ToTable("AspNetUserRoles");
//modelBuilder.Entity<IdentityUserClaim>().ToTable("AspNetUserClaims");
}

所以,一般注释掉所有内容,并从 IdentityUser 更改为 ApplicationUser。在这些更改之后,db migrations 从身份表中删除了额外的列。

【讨论】:

    猜你喜欢
    • 2019-09-12
    • 1970-01-01
    • 2021-11-22
    • 1970-01-01
    • 2010-10-16
    • 1970-01-01
    • 1970-01-01
    • 2020-05-13
    相关资源
    最近更新 更多