Как добавить столбец в существующую таблицу в 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, запомните следующее;
- Обновите PasargadInsuranceDbContext.OnModelCreating, чтобы настроить сопоставление для вашего нового свойства.
- Обновите PasargadInsuranceEfCoreEntityExtensionMappings, чтобы расширить сущность IdentityUser и добавить новое свойство в миграцию.
- Используйте Add-Migration, чтобы добавить новую миграцию базы данных.
- Запустите проект.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