-3

如您所知,样板文件不给实体类添加列,我想在名为(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 。但并不成功。如您所知,样板文件不提供实体类来编辑列。请帮助提前谢谢

4

3 回答 3

3

这个问题的答案是像这样扩展 AbpUser

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

并添加迁移UpdatedUserWithSpecialTitle 然后更新数据库

于 2017-08-25T12:48:00.343 回答
0

我在 abp.io 框架中遇到了同样的问题,将新属性“PICUstomerId”添加到 AbpUser 实体并将其迁移到数据库。

以下是 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. 最后在更新数据库之后,我在数据库中看到了我的新属性

于 2020-10-05T17:11:22.833 回答
0

这是正确的方法

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

于 2018-04-22T15:11:57.617 回答