如何使用数据库第一个实体框架更改表名

时间:2014-10-02 22:50:59

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

这与此问题类似,但使用数据库第一个实体框架而不是代码优先: How can I change the table names when using Visual Studio 2013 ASP.NET Identity?

在代码优先方法中,您可以覆盖OnModelCreating并执行类似的操作,以便将用户信息保存在MyUsers表中而不是默认的AspNetUsers:

modelBuilder.Entity<IdentityUser>().ToTable("MyUsers")

在数据库第一种方法中,我手动创建了MyUsers表,但因为OnModelCreating没有被调用,所以我不知道如何配置要保存到新表中的数据?

1 个答案:

答案 0 :(得分:0)

当覆盖OnModelCreating添加行时,您可以遵循Code First方法:

System.Data.Entity.Database.SetInitializer<ApplicationDbContext>(null);

上面的行将AspNetIdentity实体链接到您的表而不重新创建表。

代码示例:

protected override void OnModelCreating(System.Data.Entity.DbModelBuilder modelBuilder)
{
    base.OnModelCreating(modelBuilder);

    modelBuilder.Entity<ApplicationUserRole>().ToTable("UserRoles");
    modelBuilder.Entity<ApplicationUserLogin>().ToTable("UserLogins");
    modelBuilder.Entity<ApplicationUserClaim>().ToTable("UserClaims");
    modelBuilder.Entity<ApplicationRole>().ToTable("Roles");

    System.Data.Entity.Database.SetInitializer<ApplicationDbContext>(null);
}