DatabaseGeneratedOption.Identity查询

时间:2013-04-15 11:38:29

标签: entity-framework

我首先将框架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中打开表设计器,身份规范仍然设置为否。我检查了我的数据库连接,并可以在同一个表中添加一个新列。我也试过没有快乐地交换数据注释:

[DatabaseGenerated(DatabaseGeneratedOption.Identity)]

我错过了一步吗?

提前致谢 罗布

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:-1)

您可以通过删除数据库并在Package Console Manager中重新执行Update-Database -Verbose命令来实现目标。