如何在asp Boilerplate中的现有表中添加Column?

时间:2017-08-24 12:40:49

标签: asp.net asp.net-mvc ef-code-first aspnetboilerplate asp.net-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不允许实体类编辑列。请提前帮助谢谢

3 个答案:

答案 0 :(得分:2)

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

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

和add-migration UpdatedUserWithSpecialTitle 然后更新数据库

答案 1 :(得分:0)

这是正确的方法

add-migration migration_name

因此使用代码更新数据库:update-database

注意:

确保您已正确添加迁移,如下所示: user_posts

答案 2 :(得分:0)

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

这是abp.io的评论:

在此处添加您自己的属性。示例:

公共字符串MyProperty {get;组; }
如果添加属性并使用EF Core,请记住这些;

  1. 更新PasargadInsuranceDbContext.OnModelCreating以配置新属性的映射
  2. 更新PasargadInsuranceEfCoreEntityExtensionMappings以扩展IdentityUser实体并将您的新属性添加到迁移中。
  3. 使用“添加迁移”来添加新的数据库迁移。
  4. 运行.DbMigrator项目(或使用Update-Database命令)以将架构更改应用于数据库。

最后将迁移添加到您的解决方案,然后更新数据库

1. Add your own properties here

2. Update PasargadInsuranceDbContext.OnModelCreating

3. Update PasargadInsuranceEfCoreEntityExtensionMappings to extend theIdentityUser entity

4. And finally after update-databse, I saw my new property in database