为什么身份v2命名架构在EF和AspNet之间有所不同?

时间:2014-08-10 21:13:45

标签: entity-framework asp.net-identity-2 asp.net-mvc-5.2

我想知道是否有人可以帮我解决以下问题...

我创建了一个使用Identity v2的EF代码第一个数据库(sqlexpress) - 我可以在该数据库中查看我的所有模型,包括以Identity *开头的Identity相关表(即IdentityUserClaims,IdentityUserLogins,IdentityUserRoles IdentityRoles& IdentityUsers)。

然后,我创建了一个全新的MVC项目,并添加了相同的连接字符串。当我注册一个新用户时 - 由于某种原因,它会启动并创建以AspNet *开头的Identity v2表(即AspNetUserClaims,AspNetUserLogins,AspNetUserRoles AspNetRoles和AspNetUsers)。

[我正在使用...... EF 6.1.1,Identity 2.1,MVC 5.2]

为什么EF和AspNet之间的身份命名架构不同?如何让MVC使用EF模式Identity *?

1 个答案:

答案 0 :(得分:0)

您可以在类的顶部按[Table("MyUsers")]属性覆盖表名:

[Table("WhateverILikeUsers")]
public class ApplicationUser : IdentityUser
{
}

或者您可以在DbContext中重命名表:

public class MyContext : IdentityDbContext<ApplicationUser>
{
    // other stuff

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<ApplicationUser>().ToTable("HelloIdentity");
    }
}