如何使用.net核心实体框架迁移来更新表(而不重新创建表) 初始迁移第二次迁移

我已连接到没有任何身份的现有SQL数据库,例如没有aspNetUser表等。此后,我使用这样的自定义登录类添加了这些

public class UserLogin : IdentityUser
{       
    public int LanguageId { get; set; }
    public string HQ_PRM_Id { get; set; }       
}

然后我生成了一个迁移来创建像这样的表(我称之为身份)

“ dotnet ef迁移添加身份”

然后我使用

运行迁移

“ dotnet ef数据库更新身份”

这样创建了表格,一切都很好。但是,我忘了在此后添加的用户类中添加名字和姓氏。问题是当我运行新迁移时,它会显示

数据库中已经有一个名为“ AspNetRoles”的对象。

如何告诉迁移更新架构而不尝试重新创建表?否则,我必须先手动删除对象。这意味着丢失数据。

谢谢

yyj19860815 回答:如何使用.net核心实体框架迁移来更新表(而不重新创建表) 初始迁移第二次迁移

在开发期间,模型经常更改,并且这些模型(代表数据库表)与表本身不同步。迁移的作用是使数据库和模型保持同步,因此,每当对模型进行更改时,都必须创建一个新的迁移来增量更新数据库模式。

初始迁移

public class UserLogin : IdentityUser
{       
    public int LanguageId { get; set; }
    public string HQ_PRM_Id { get; set; }       
}

dotnet ef migrations add Identity-此命令创建一个名为Identity的新迁移

dotnet ef database update Identity-此命令最多可进行迁移,包括名称为“ Identity”的迁移

第二次迁移

public class UserLogin : IdentityUser
{       
    public int LanguageId { get; set; }
    public string HQ_PRM_Id { get; set; }
    public string FirstName { get; set; }       
    public string LastName { get; set; }            
}

dotnet ef migrations add AddNames-此命令创建一个名为AddNames的新迁移,EF应将其识别为对现有表的更新(因此,该迁移仅应为and update)

dotnet ef database update AddNames-然后将运行AddNames迁移

我绝对建议您在该主题上检查MS docs

本文链接:https://www.f2er.com/3111309.html

大家都在问