我有一个使用Code First数据迁移的MVC应用程序,现在,在制作表之后很久,我想将PK列更改为不是自动生成的Identity列。但是我得到的印象是我不能在没有CodeFirst以某种方式删除表的情况下执行此操作(这将很难给出所有依赖项)并重新创建它?真的希望我不必这样做。
我尝试过的事情:
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int AssessmentID { get; set; }
,这在OnModelCreating()中:
modelBuilder.Entity<Assessment>()
.Property(e => e.AssessmentID)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
进行添加迁移时,它不会添加任何内容。我尝试手动添加此行,但它不会更新db:
AlterColumn("dbo.Assessment", "AssessmentID", c => c.Int(nullable: false, identity:false));
答案 0 :(得分:0)
我的结论是,这确实是不可能的。与下面的帖子一样,没有SQL Alter命令来更改列上的Identity状态,因此CodeFirst无法创建一个。我计划删除所有迁移文件和rescaffold(事情在其他方面变得混乱)。