2

我首先将框架 4.5 与 EF5 数据库一起用于现有数据库,该数据库没有为大多数表打开身份插入。我正在使用的数据库也有现有数据。我正在尝试打开数据库生成的身份。

EF5 做到了,我的实体的地图显示

this.Property(t => t.ActionId).HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);

我已经更新到

this.Property(t => t.ActionId).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);

我运行了 Update-Database -Verbose 它说:

No pending code-based migrations.
Applying automatic migration: 201304151128390_AutomaticMigration.
ALTER TABLE [dbo].[Action] ALTER COLUMN [ActionId] [int] NOT NULL

如果我在 SqlMS 中打开表设计器,Identity Specification 仍然设置为 No。我检查了我的数据库连接并且可以在同一个表中添加一个新列。我也尝试过毫无乐趣地切换到数据注释:

[DatabaseGenerated(DatabaseGeneratedOption.Identity)]

我错过了一步吗?

提前谢谢罗

4

2 回答 2

0

我的代码也遇到了同样的问题,然后找到了使用 [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] 的提议,但这仍然没有帮助我。在此步骤之后,我为我的关键属性留下了 [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] 注释,并将身份规范手动设置为是,并增加 1。我成功了。我认为这可能是 asp.net 中的一个错误

于 2014-12-10T17:57:48.303 回答
-1

您可以通过删除数据库并在包控制台管理器中重新执行 Update-Database -Verbose 命令来实现目标。

于 2017-05-16T11:27:55.740 回答