【问题标题】:Entity Framework CodeFirst make primary key identity实体框架代码首先制作主键标识
【发布时间】:2015-09-02 23:56:45
【问题描述】:

我首先在 SQL Server Management Studio 中设计了我的数据库。
然后使用代码生成实体。
对于表(比如 Product),id 列(比如 ProductID)未设置为身份,因此在实体中,id 属性(比如 ProductID)具有类似的属性 [DatabaseGenerated(DatabaseGeneratedOption.None)].
我把它改成 [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
这是我对实体所做的唯一更改。
现在我添加了一个迁移,然后当我Update-Database 时,它会抛出一个错误

Error Number:3728,State:1,Class:16
'PK_dbo.****' is not a constraint.
Could not drop constraint. See previous errors.

知道如何实现这一目标吗?

【问题讨论】:

  • 我认为this 是根本问题。

标签: entity-framework ef-code-first entity-framework-migrations


【解决方案1】:

您可以添加带有标志的迁移以告诉 EF 不要生成 Up/Down 代码 (Add-Migration MyMigration –IgnoreChanges),或者您可以简单地注释掉生成的 Up() 代码和更新数据库。这会将模型与数据库同步。

【讨论】:

  • 我认为Update-Database命令会同步数据库与模型的变化,不会根据数据库改变模型。我努力了。它没有用。
  • 抱歉,您已经将数据库中的列设置为身份。在执行此操作之前,您需要使用身份配置 sql 端。请参阅 Gert 提供的链接。
【解决方案2】:

当你在有记录的表上创建迁移时,你创建的外键必须为空

【讨论】:

    猜你喜欢
    • 2011-11-07
    • 1970-01-01
    • 2013-01-15
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多