Изменить имена столбцов таблиц идентичности (Asp.Net) - PullRequest
0 голосов
/ 30 апреля 2019

Я хотел бы изменить имена столбцов всех таблиц идентификаторов. Я уже изменил имена таблицы, но я хотел бы также изменить имена столбцов. Это то, что у меня есть, чтобы изменить имена таблиц.

Пожалуйста, дайте мне знать, как я могу изменить названия столбцов. Например:

Id = lngUserID
Email = strUserEmail
EmailConfirmed = strUserEmailConfirmed
....

Кроме того, если я изменю имена столбцов, нужно ли мне что-то делать с первичными и внешними ключами?

        base.OnModelCreating(modelBuilder);

        modelBuilder.Entity<ApplicationUser>().ToTable("tblUsers");
        modelBuilder.Entity<IdentityRole>().ToTable("tblRoles");
        modelBuilder.Entity<IdentityUserClaim>().ToTable("tblUserClaims");
        modelBuilder.Entity<IdentityUserLogin>().ToTable("tblUserLogins");
        modelBuilder.Entity<IdentityUserRole>().ToTable("tblUserRoles");

Ответы [ 2 ]

1 голос
/ 01 мая 2019

В вашем классе onModelCreating выполните следующие действия:

modelBuilder.Entity<ApplicationUser>().Property(p => p.Id).HasColumnName("strUserID");
modelBuilder.Entity<ApplicationUser>().Property(p =>p.Email).HasColumnName("strUserEmail");
modelBuilder.Entity<ApplicationUser>().Property(p => p.EmailConfirmed).HasColumnName("strUserEmailConfirmed");
1 голос
/ 30 апреля 2019

Поместите список старых свойств и соответствующее имя нового столбца в словарь, как показано ниже.

IDictionary<string, string> UserTableColumns = new Dictionary<string, string>() {
            {"Id",  "lngUserID"}, {"Email",  "strUserEmail"},{"EmailConfirmed", "strUserEmailConfirmed"}};

            foreach (var property in typeof(ApplicationUser).GetProperties())
            {
                if (UserTableColumns.ContainsKey(property.Name))
                {
                    builder.Entity<ApplicationUser>().Property(property.Name).HasColumnName(property.Name);
                }
            }
...