我已经通过.bacpac将数据库导入到本地。在C#解决方案项目中,我在现有表(Entity(中添加了一列。解决方案中的连接字符串设置为本地计算机中的数据库。数据库具有表"_EFMigrationHistory";。
当我尝试添加迁移并更新数据库时,为迁移生成的代码会尝试创建本地数据库中DBContext下列出的表。
然后我得到一个错误说
"数据库中已存在名为"TableName"的对象">
在迁移代码中,它似乎试图在DB中创建已经可用的表。但我需要的只是更新我在代码中的DBSet中应用的列更改。我不想丢失本地数据库中的数据。怎么可能只推送表列更新而不重新创建所有表?非常感谢有关的帮助
注释您的列更改(稍后实际要迁移的内容(,并通过Powershell 运行以下命令
Add-Migration SnapshotCreate
由于此迁移仅用于更新ModelSnapshot.cs文件,因此您可以删除迁移文件(类似于{Date}SnapshotCreate.cs
(。
接下来,取消对列更改的注释,然后像往常一样添加迁移。这应该只会拉入该列的Up
和Down
更改。