导入的数据库-添加迁移-已存在的表的添加表列尝试创建该表

时间:2020-08-12 04:27:37

标签: entity-framework asp.net-core entity-framework-core

我已通过.bacpac将数据库导入本地。在C#解决方案项目中,我在现有表(实体)中添加了一列。解决方案中的连接字符串设置为本地计算机上的数据库。该数据库具有表“ _EFMigrationHistory”。

当我尝试添加迁移并更新数据库时,为迁移生成的代码会尝试在本地数据库的DBContext下创建表。

然后我说错了

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

在迁移代码中,看起来它试图在数据库中创建已经可用的表。 但是我只需要更新代码中我在DBSet中应用的列更改。我不想丢失本地数据库中的数据。 如何仅推送表列更新而不重新创建所有表? 希望对此有所帮助

1 个答案:

答案 0 :(得分:1)

注释掉列更改(以后您实际要迁移的内容)并通过Powershell运行以下命令

Add-Migration SnapshotCreate 

由于此迁移仅用于更新ModelSnapshot.cs文件,因此只能删除迁移文件(类似于{Date}SnapshotCreate.cs)。

接下来,取消注释列更改,然后像平常一样添加迁移。这只会拉入该列的UpDown更改。