如何在使用ASP.NET标识时更改表名?我使用的是VisualStudio 2013的发布版本(RTM,而不是RC)(从MSDN 2013-10-18下载),因此使用的是AspNet.IdEntity的最新版本(RTM)。当我创建一个新的Web项目时,我选择“个人用户帐户”进行身份验证。这将创建以下表:阿斯佩罗AspNetUserClaimsAspNetUserLoginsAspNetUserRolesAspNetUser当我注册一个新用户(使用默认模板)时,将创建这些表(上面列出),并且AspNetUsers表插入了一条记录,其中包含:ID用户名密码散列安全邮票鉴别器此外,通过向类“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");
}}
3 回答
潇湘沐
TA贡献1816条经验 获得超6个赞
以下是我的工作解决方案:
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>{ public ApplicationDbContext() : base("DefaultConnection", throwIfV1Schema: false) { } protected override void OnModelCreating(DbModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); // This needs to go before the other rules! modelBuilder.Entity<ApplicationUser>().ToTable("User"); modelBuilder.Entity<IdentityRole>().ToTable("Role"); modelBuilder.Entity<IdentityUserRole>().ToTable("UserRole"); modelBuilder.Entity<IdentityUserClaim>().ToTable("UserClaim"); modelBuilder.Entity<IdentityUserLogin>().ToTable("UserLogin"); } public static ApplicationDbContext Create() { return new ApplicationDbContext(); }}
阿波罗的战车
TA贡献1862条经验 获得超6个赞
using System.Data.Entity.ModelConfiguration;public class ApplicationUserConfig : EntityTypeConfiguration<ApplicationUser>{ public UserConfig() { ToTable("Users"); Property(u => u.LocationName).IsRequired(); }}
protected override void OnModelCreating(DbModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); modelBuilder.Configurations.Add(new ApplicationUserConfig()); ... }
- 3 回答
- 0 关注
- 533 浏览
添加回答
举报
0/150
提交
取消