.net 如何使用数据库首实体框架更改表名

njthzxwz  于 2023-01-18  发布在  .NET
关注(0)|答案(1)|浏览(161)

这类似于这个问题,但是使用数据库优先实体框架而不是代码优先: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,所以我不知道如何配置要保存到新表中的数据。

yqkkidmi

yqkkidmi1#

重写OnModelCreating时,可以遵循“代码优先”方法,添加以下行:

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);
}

相关问题