我首先将框架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)]
我错过了一步吗?
提前致谢 罗布
答案 0 :(得分:0)
我的代码遇到了同样的问题,然后找到了要使用的提议 [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)],但这仍然没有帮助我。 在这个步骤之后,我为我的密钥属性留下了[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]注释,并将手动身份规范设置为是,并增加1.我工作了。 我认为这可能是asp.net中的一个错误
答案 1 :(得分:-1)
您可以通过删除数据库并在Package Console Manager中重新执行Update-Database -Verbose命令来实现目标。