Как добавить столбец в существующую таблицу в asp Boilerplate?

Как вы знаете, Boilerplate не предоставляет классы сущностей для добавления столбцов, и я хочу добавить столбец в таблицу с именем ( AbpUser). Я пытался сделать класс по миграции, как показано ниже

public partial class AddRatingMig : DbMigration
{
    public override void Up()
    {
        AddColumn("dbo.AbpUsers", "UserType", c => c.String());
    }

    public override void Down()
    {
        DropColumn("dbo.AbpUsers", "UserType");
    }
}

Затем в консоли Pm выполните команду Update-Database . Но не удачно. Как вы знаете, Boilerplate не предоставляет классы сущностей для редактирования столбцов. Пожалуйста, помогите Спасибо заранее

2 ответа

Решение

Ответ на этот вопрос заключается в расширении AbpUser следующим образом

public class User : AbpUser<User> 
{ 
    public string SpecialTitle { get; set; } 
}

и добавление-миграция UpdateUserWithSpecialTitle, затем update-database

У меня была такая же проблема в структуре abp.io, когда я добавлял новое свойство "PICUstomerId" в AbpUser Entity и переносил его в базу данных.

Вот комментарии abp.io:

Добавьте сюда свою собственность. Пример:

публичная строка MyProperty {получить; набор; }
Если вы добавляете свойство и используете EF Core, запомните следующее;

  1. Обновите PasargadInsuranceDbContext.OnModelCreating, чтобы настроить сопоставление для вашего нового свойства.
  2. Обновите PasargadInsuranceEfCoreEntityExtensionMappings, чтобы расширить сущность IdentityUser и добавить новое свойство в миграцию.
  3. Используйте Add-Migration, чтобы добавить новую миграцию базы данных.
  4. Запустите проект.DbMigrator (или используйте команду Update-Database), чтобы применить изменение схемы к базе данных.

и, наконец, добавьте миграцию к вашему решению, а затем обновите базу данных

1. Добавьте сюда свою собственность

2. Обновите PasargadInsuranceDbContext.OnModelCreating.

3. Обновите PasargadInsuranceEfCoreEntityExtensionMappings для расширения сущности IdentityUser.

4. И, наконец, после обновления базы данных я увидел свою новую собственность в базе данных.

Вот правильный путь

public partial class AddRatingMig : DbMigration
 {
    public override void Up(MigrationBuilder migrationBuilder)
  {
    migrationBuilder.AddColumn<string>(
      name: "UserType",
      table:"AbpUsers",
      nullable:true
      );
  }

    public override void Down(MigrationBuilder migrationBuilder)
      {
        migrationBuilder.DropColumn(
        name:"UserType",
        table:"dbo.AbpUsers"
        );
      }
}

Следовательно, обновите базу данных, используя код как: update-database

НОТА:

Убедитесь, что вы правильно добавили миграции как:add-migration migration_name

Другие вопросы по тегам