【问题标题】:C# Entity Framework migration, Make ID auto-incrementC# Entity Framework 迁移,使 ID 自动递增
【发布时间】:2018-11-05 01:32:51
【问题描述】:

我有一个在使用数据库优先方法生成的实体框架上下文中使用的表。

我犯了一个错误,一个表的ID 不是自动递增的。我不确定解决这个问题的最佳方法是什么。

我应该删除表,然后重新生成它吗?

我可以进行迁移以使此 ID 自动递增吗?

还有其他选择吗?

提前致谢

【问题讨论】:

  • 高度取决于您通过 EF 与之交谈的数据库系统。在 SQL Server 中,您不能在创建现有列后将其转换为 IDENTITY 列 - 您必须删除并使用正确的设置重新创建。但其他 RDBMS 可能有其他方法来解决这个问题....
  • 迁移首先是为了代码。您是在现有数据库或数据库优先 (EDMX) 中使用代码优先吗? romiller.com/2013/04/30/…

标签: c# entity-framework database-migration entity-framework-migrations ef-database-first


【解决方案1】:

如果表是先使用数据库创建的,如果使用它,您可以在 SSMS 中更改它吗?然后在 Visual Studio 中打开 .edmx 文件,右键单击某处的背景并从数据库中选择更新模型。浏览您需要的选项(可能只是刷新表),完成此操作后,您需要保存 .edmx 文件。

【讨论】:

    【解决方案2】:

    您可以启用代码优先迁移并更新您的数据库:

    1. [DatabaseGenerated(DatabaseGeneratedOption.Identity)] 属性添加到您的 ID 列

    2. 在包管理器控制台中运行此命令以启用迁移:

      Enable-Migrations
      
    3. 使用这些命令更新数据库:

      Add-Migration
      Update-Database
      

      (先运行Add-Migration,再运行Update-Database命令)

    【讨论】:

    猜你喜欢
    • 2013-04-11
    • 2017-06-17
    • 1970-01-01
    • 1970-01-01
    • 2015-03-09
    • 2012-03-04
    • 2015-11-07
    • 2017-10-27
    相关资源
    最近更新 更多