[英]How to change table names in Asp.net Identity 3.0?
如何更改 ASP.net Identity 3.0 中的表名?
我已經搜索過,但我沒有得到任何關於 Identity 3.0 的可行的文章
您可以通過在OnModelCreating
的DbContext
上使用擴展方法ToTable("TableName")
更改實體映射來輕松完成此DbContext
:
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
builder.Entity<User>().ToTable("Users"); // Your custom IdentityUser class
builder.Entity<IdentityUserLogin<string>>().ToTable("UserLogins");
builder.Entity<IdentityUserToken<string>>().ToTable("UserTokens");
builder.Entity<IdentityUserClaim<string>>().ToTable("UserClaims");
builder.Entity<IdentityUserRole<string>>().ToTable("UserRoles");
builder.Entity<IdentityRoleClaim<string>>().ToTable("RoleClaims");
builder.Entity<IdentityRole>().ToTable("Roles");
}
這里唯一的問題是記住使用具有標識符類型的泛型(字符串是 AspNetCore 上的默認值。
僅出於文檔目的,對於那些在未來幾年來此帖子的人(如我 XD),問題的答案:
如何更改 .NET CORE 中的默認 ASP.NET Identity 表名稱?
可以這樣解決
//Repeat with each table
builder.Entity<ApplicationUser>(entity =>
{
entity.ToTable(name:"Users");
entity.Property(e => e.Id).HasColumnName("UserId");
});
或者可以這樣解決
modelBuilder.Entity<IdentityUser>().ToTable("MyUsers").Property(p => p.Id).HasColumnName("UserId");
modelBuilder.Entity<ApplicationUser>().ToTable("MyUsers").Property(p => p.Id).HasColumnName("UserId");
modelBuilder.Entity<IdentityUserRole>().ToTable("MyUserRoles");
modelBuilder.Entity<IdentityUserLogin>().ToTable("MyUserLogins");
modelBuilder.Entity<IdentityUserClaim>().ToTable("MyUserClaims");
modelBuilder.Entity<IdentityRole>().ToTable("MyRoles");
但是你可以簡單地使用 Alexandru Bucur 在他的博客上給出的這種方法,並在 netcore 2.2 上進行測試
foreach (var entityType in modelBuilder.Model.GetEntityTypes())
{
var table = entityType.Relational().TableName;
if (table.StartsWith("AspNet"))
{
entityType.Relational().TableName = table.Substring(6);
}
};
但這不再支持 netcore > 2.2,所以,我需要修復它,這是 NetCore > 2.2 上的功能方式
foreach (var entityType in modelBuilder.Model.GetEntityTypes())
{
var tableName = entityType.GetTableName();
if (tableName.StartsWith("AspNet"))
{
entityType.SetTableName(tableName.Substring(6));
}
}
選擇你喜歡的並享受它,HappyCoding
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.