【问题标题】:Imported DB - Add Migration - Add table column for a already available table tries to create the table导入的数据库 - 添加迁移 - 为已经可用的表添加表列尝试创建表
【发布时间】:2020-08-12 04:27:37
【问题描述】:

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

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

然后我得到一个错误提示

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

在迁移代码中,它似乎试图在数据库中创建已经可用的表。 但我需要只更新我在代码中的 DBSet 中应用的列更改。我不想丢失本地数据库中的数据。 怎么可能只推送表列更新而不再次创建所有表? 希望能得到一些帮助

【问题讨论】:

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


    【解决方案1】:

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

    Add-Migration SnapshotCreate 
    

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

    接下来,取消注释列更改,然后像往常一样添加迁移。这应该只引入您对该列的UpDown 更改。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-26
      • 1970-01-01
      • 1970-01-01
      • 2018-06-27
      • 1970-01-01
      • 1970-01-01
      • 2018-03-31
      • 1970-01-01
      相关资源
      最近更新 更多