如何使用数据库优先实体框架更改表名

本文关键字:框架 实体 何使用 数据库 | 更新日期: 2023-09-27 18:25:27

这与这个问题类似,但使用了数据库优先的实体框架,而不是代码优先:使用Visual Studio 2013 ASP.NET Identity时,如何更改表名?

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

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

在数据库优先的方法中,我手动创建了MyUsers表,但由于没有调用OnModelCreating,我不知道如何配置要保存到新表中的数据?

如何使用数据库优先实体框架更改表名

您可以遵循代码优先的方法,在重写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);
}