猿问

如何在使用ASP.NET标识时更改表名?

如何在使用ASP.NET标识时更改表名?

我使用的是VisualStudio 2013的发布版本(RTM,而不是RC)(从MSDN 2013-10-18下载),因此使用的是AspNet.IdEntity的最新版本(RTM)。当我创建一个新的Web项目时,我选择“个人用户帐户”进行身份验证。这将创建以下表:

  1. 阿斯佩罗
  2. AspNetUserClaims
  3. AspNetUserLogins
  4. AspNetUserRoles
  5. AspNetUser

当我注册一个新用户(使用默认模板)时,将创建这些表(上面列出),并且AspNetUsers表插入了一条记录,其中包含:

  1. ID
  2. 用户名
  3. 密码散列
  4. 安全邮票
  5. 鉴别器

此外,通过向类“ApplicationUser”添加公共属性,我成功地向AspNetUsers表添加了其他字段,如“FirstName”、“LastName”、“PhoneNumber”等。

这是我的问题。是否有方法更改上述表的名称(第一次创建这些表时),还是始终使用AspNet我上面列出的前缀?如果表名可以不同的名称,请解释如何命名。

-更新

我实现了@郝公的解决方案。它确实创建了一个新表(例如,我称它为MyUsers),但它仍然创建了AspNetUsers表。其目标是将“AspNetUser”表替换为“MyUser”表。请参阅下面的代码和创建的表的数据库映像。

实际上我想替换每一个AspNet桌子上写着我自己的名字.。例如,MyRoles、MyUserClaims、MyUserLogins、MyUserRoles和MyUser。

我如何做到这一点,最后只有一组表?

public class ApplicationUser : IdentityUser{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Address1 { get; set; }
    public string Address2 { get; set; }
    public string City { get; set; }
    public string State { get; set; }
    public string PostalCode { get; set; }
    public string PhonePrimary { get; set; }
    public string PhoneSecondary { get; set; }}public class ApplicationDbContext : IdentityDbContext<ApplicationUser>{
    public ApplicationDbContext(): base("DefaultConnection")
    {
    }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);
        modelBuilder.Entity<IdentityUser>().ToTable("MyUsers");
    }}


慕盖茨4494581
浏览 394回答 3
3回答

隔江千里

以下是我的工作解决方案:public&nbsp;class&nbsp;ApplicationDbContext&nbsp;:&nbsp;IdentityDbContext<ApplicationUser>{ &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;ApplicationDbContext() &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;base("DefaultConnection",&nbsp;throwIfV1Schema:&nbsp;false) &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;override&nbsp;void&nbsp;OnModelCreating(DbModelBuilder&nbsp;modelBuilder) &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;base.OnModelCreating(modelBuilder);&nbsp;//&nbsp;This&nbsp;needs&nbsp;to&nbsp;go&nbsp;before&nbsp;the&nbsp;other&nbsp;rules! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;modelBuilder.Entity<ApplicationUser>().ToTable("User"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;modelBuilder.Entity<IdentityRole>().ToTable("Role"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;modelBuilder.Entity<IdentityUserRole>().ToTable("UserRole"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;modelBuilder.Entity<IdentityUserClaim>().ToTable("UserClaim"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;modelBuilder.Entity<IdentityUserLogin>().ToTable("UserLogin"); &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;ApplicationDbContext&nbsp;Create() &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;new&nbsp;ApplicationDbContext(); &nbsp;&nbsp;&nbsp;&nbsp;}}看见这,这个想了解更多细节

慕桂英3389331

以下是我的工作解决方案:public&nbsp;class&nbsp;ApplicationDbContext&nbsp;:&nbsp;IdentityDbContext<ApplicationUser>{ &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;ApplicationDbContext() &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;base("DefaultConnection",&nbsp;throwIfV1Schema:&nbsp;false) &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;override&nbsp;void&nbsp;OnModelCreating(DbModelBuilder&nbsp;modelBuilder) &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;base.OnModelCreating(modelBuilder);&nbsp;//&nbsp;This&nbsp;needs&nbsp;to&nbsp;go&nbsp;before&nbsp;the&nbsp;other&nbsp;rules! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;modelBuilder.Entity<ApplicationUser>().ToTable("User"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;modelBuilder.Entity<IdentityRole>().ToTable("Role"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;modelBuilder.Entity<IdentityUserRole>().ToTable("UserRole"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;modelBuilder.Entity<IdentityUserClaim>().ToTable("UserClaim"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;modelBuilder.Entity<IdentityUserLogin>().ToTable("UserLogin"); &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;ApplicationDbContext&nbsp;Create() &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;new&nbsp;ApplicationDbContext(); &nbsp;&nbsp;&nbsp;&nbsp;}}看见这,这个想了解更多细节
随时随地看视频慕课网APP
我要回答