如何使用int ID列更改ASP.net Identity 2.0的表名?

山姆

我已经使用ASP.net会员多年,并且刚刚开始尝试ASP.net Identity。他们刚刚发布了2.0版,该版本应该支持int主键。为了获得整数主键支持,我已经如下定义了我的自定义标识类:

public class User : IdentityUser<int, UserLogin, UserRole, UserClaim>
{  
}

public class UserLogin : IdentityUserLogin<int>
{
}

public class Role : IdentityRole<int, UserRole>
{
    public string Description { get; set; }  // Custom description field on roles
}

public class UserRole : IdentityUserRole<int>
{
}

public class UserClaim : IdentityUserClaim<int>
{
}

public class MyDbContext : IdentityDbContext<User, Role, int, UserLogin, UserRole, UserClaim>
{
    public MyDbContext() : this("MyDB") { }

    public MyDbContext(string connStringName) : base(connStringName)
    {
        this.Configuration.LazyLoadingEnabled = false;
        this.Configuration.ProxyCreationEnabled = false;
    }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {

        modelBuilder.Entity<User>().ToTable("Users");
        modelBuilder.Entity<Role>().ToTable("Roles");
        modelBuilder.Entity<UserRole>().ToTable("UserRoles");
        modelBuilder.Entity<UserLogin>().ToTable("UserLogins");
        modelBuilder.Entity<UserClaim>().ToTable("UserClaims");

        base.OnModelCreating(modelBuilder);
    }
}

当我创建数据库迁移时,它会为每个身份表正确创建一个整数Id列,但是,它忽略了在OnModelCreating方法中指定的自定义表名相反,我得到像dbo.AspNetUsers和的表名dbo.AspNetRoles

我还尝试将添加[Table("TableName")]到我的自定义标识类中,但没有任何效果。

在查看ASP.net Identity 1.0的示例时,似乎他们modelBuilder.Entry<Type>().ToTable("TableName")使用基本Identity类重复了每一行:

modelBuilder.Entity<User>().ToTable("Users");
modelBuilder.Entity<IdentityUser<int, IdentityUserLogin<int>, IdentityUserRole<int>, IdentityUserClaim<int>>>().ToTable("Users");

modelBuilder.Entity<Role>().ToTable("Roles");
modelBuilder.Entity<IdentityRole<int, UserRole>>().ToTable("Roles");

modelBuilder.Entity<UserRole>().ToTable("UserRoles");
modelBuilder.Entity<IdentityUserRole<int>>().ToTable("UserRoles");

modelBuilder.Entity<UserLogin>().ToTable("UserLogins");
modelBuilder.Entity<IdentityUserLogin<int>>().ToTable("UserLogins");

modelBuilder.Entity<UserClaim>().ToTable("UserClaims");
modelBuilder.Entity<IdentityUserClaim<int>>().ToTable("UserClaims");

但是,我尝试了几种变体,但无法生成迁移。我一直收到类似于类型Microsoft.AspNet.Identity.EntityFramework.IdentityUser'4 [System.Int32,Microsoft.AspNet.Identity.EntityFramework.IdentityUserLogin'1 [System.Int32],Microsoft.AspNet.Identity.EntityFramework.IdentityUserRole的错误未映射'1 [System.Int32],Microsoft.AspNet.Identity.EntityFramework.IdentityUserClaim'1 [System.Int32]]'。通过使用Ignore方法或NotMappedAttribute数据批注检查类型是否未明确排除。验证类型是否定义为类,不是原始类型还是泛型,并且没有从EntityObject继承。

如何在ASP.net Identity 2.0中使用整数主键生成自定义表名?

山姆

Grrr……因此,在浪费了几个小时之后,我复制了规则,并将其粘贴到了base.OnModelCreating(modelBuilder);线下,一切正常。我没有意识到基本方法需要首先被调用:(

现在,使用以下配置,一切都可以正常工作:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    base.OnModelCreating(modelBuilder); // This needs to go before the other rules!

    modelBuilder.Entity<User>().ToTable("Users");
    modelBuilder.Entity<Role>().ToTable("Roles");
    modelBuilder.Entity<UserRole>().ToTable("UserRoles");
    modelBuilder.Entity<UserLogin>().ToTable("UserLogins");
    modelBuilder.Entity<UserClaim>().ToTable("UserClaims");
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在ASP.NET Identity 2中使用TPH(每个层次结构的表)

来自分类Dev

尝试更改ASP.NET Identity 2.0中的表名

来自分类Dev

使用ASP.Net Identity EntityFramwork到ID列设置为UniqueIdentifier的现有AspNetUsers表

来自分类Dev

ASP.NET Identity2-如何使用AllowAnonymous Controller获取用户ID?

来自分类Dev

如何为 Asp.Net Identity 自定义表名(例如从 AspNetUsers 更改为自定义名称)

来自分类Dev

使用ASP.NET Identity v2的Thinktecture Identity Server v2

来自分类Dev

是什么为使用ASP.NET Identity 2的用户生成int主键的值的?

来自分类Dev

如何在ASP.Net MVC Identity 2中更改密码验证?

来自分类Dev

更改ASP.NET Identity 2中的列名

来自分类Dev

在VS2015中的ASP.NET Identity中将用户ID类型更改为int

来自分类Dev

如何更改ASP.NET Identity用于创建其必要表的数据库?

来自分类Dev

如何使用ASP.NET Identity设置Thinktecture Identity Server v3 beta 1-2?

来自分类Dev

ASP.Net Identity 2 RemovePassword模拟

来自分类Dev

ASP.Net Identity 2 RemovePassword模拟

来自分类Dev

使用ASP.Net Identity 2创建新用户时,会将新行插入到父表中

来自分类Dev

使用ASP.NET Identity 2进行身份验证时,如何获得返回的User对象?

来自分类Dev

如何将新列添加到 Identity RoleClaims 表中(asp net core)

来自分类Dev

C# ASP.NET Identity 2 (.NET Framework MVC) - 使用权限和角色

来自分类Dev

“ ASP.Net Identity”与“ Windows Identity Foundation”相比如何?

来自分类Dev

ASP.NET Identity从AspNetUsers表中删除列

来自分类Dev

Asp.net Identity 2自定义用户和自定义表名称

来自分类Dev

将详细信息表读取到ASP.NET MVC 5 Identity 2

来自分类Dev

使用ASP.NET Identity实施权利

来自分类Dev

如何在Asp.Net Identity 2中手动检查密码?

来自分类Dev

如何自定义Asp.net Identity 2用户名已采取的验证消息?

来自分类Dev

使用ASP.NET Identity 2检查密码是否有效

来自分类Dev

将使用DbContext的类添加到ASP.NET Identity 2项目

来自分类Dev

使用Asp.Net Identity 2将用户信息存储在AspNetUserClaims中有什么好处?

来自分类Dev

ASP.NET Identity 2是否使用machinekey来对密码进行哈希处理?

Related 相关文章

  1. 1

    如何在ASP.NET Identity 2中使用TPH(每个层次结构的表)

  2. 2

    尝试更改ASP.NET Identity 2.0中的表名

  3. 3

    使用ASP.Net Identity EntityFramwork到ID列设置为UniqueIdentifier的现有AspNetUsers表

  4. 4

    ASP.NET Identity2-如何使用AllowAnonymous Controller获取用户ID?

  5. 5

    如何为 Asp.Net Identity 自定义表名(例如从 AspNetUsers 更改为自定义名称)

  6. 6

    使用ASP.NET Identity v2的Thinktecture Identity Server v2

  7. 7

    是什么为使用ASP.NET Identity 2的用户生成int主键的值的?

  8. 8

    如何在ASP.Net MVC Identity 2中更改密码验证?

  9. 9

    更改ASP.NET Identity 2中的列名

  10. 10

    在VS2015中的ASP.NET Identity中将用户ID类型更改为int

  11. 11

    如何更改ASP.NET Identity用于创建其必要表的数据库?

  12. 12

    如何使用ASP.NET Identity设置Thinktecture Identity Server v3 beta 1-2?

  13. 13

    ASP.Net Identity 2 RemovePassword模拟

  14. 14

    ASP.Net Identity 2 RemovePassword模拟

  15. 15

    使用ASP.Net Identity 2创建新用户时,会将新行插入到父表中

  16. 16

    使用ASP.NET Identity 2进行身份验证时,如何获得返回的User对象?

  17. 17

    如何将新列添加到 Identity RoleClaims 表中(asp net core)

  18. 18

    C# ASP.NET Identity 2 (.NET Framework MVC) - 使用权限和角色

  19. 19

    “ ASP.Net Identity”与“ Windows Identity Foundation”相比如何?

  20. 20

    ASP.NET Identity从AspNetUsers表中删除列

  21. 21

    Asp.net Identity 2自定义用户和自定义表名称

  22. 22

    将详细信息表读取到ASP.NET MVC 5 Identity 2

  23. 23

    使用ASP.NET Identity实施权利

  24. 24

    如何在Asp.Net Identity 2中手动检查密码?

  25. 25

    如何自定义Asp.net Identity 2用户名已采取的验证消息?

  26. 26

    使用ASP.NET Identity 2检查密码是否有效

  27. 27

    将使用DbContext的类添加到ASP.NET Identity 2项目

  28. 28

    使用Asp.Net Identity 2将用户信息存储在AspNetUserClaims中有什么好处?

  29. 29

    ASP.NET Identity 2是否使用machinekey来对密码进行哈希处理?

热门标签

归档