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

问题描述

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

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

然后我说错了

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

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

解决方法

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

Add-Migration SnapshotCreate 

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

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

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...