删除EF Core 1.0 RC2中的自动增量(以前的EF 7 RC2)

在Entity Framework Core 1.0 RC2(以前的Entity Framework 7 RC2)中,默认情况下,所有整数主键都是自动增量字段。 我尝试了一切来删除它。 从使用数据注释到流畅的API,没有任何作用。

使用数据注释:

[Key, Column(Order = 1, TypeName = "INT"), DatabaseGenerated(DatabaseGeneratedOption.None)] 

使用流畅的API:

 modelBuilder.Entity().HasKey(t => t.ProdId).HasAnnotation("DatabaseGenerated", DatabaseGeneratedOption.None); //OR use the following modelBuilder.Entity().HasKey(t => t.ProdId).HasAnnotation("DatabaseGenerated", 0); //OR use the following modelBuilder.Entity().HasKey(t => t.ProdId).HasAnnotation("Sqlite:Autoincrement", false); 

没有任何工作:(

你能帮我么?

更新

正如请求的那样,这是运行add-migration LocalDB_v1后得到的表脚本

 migrationBuilder.CreateTable( name: "tblProduct", columns: table => new { ProdId = table.Column(nullable: false) .Annotation("Sqlite:Autoincrement", true), Name = table.Column(nullable: true), Description = table.Column(nullable: true) }, constraints: table => { table.PrimaryKey("PK_tblProduct", x => x.ProdId); }); ... ... ... 

在EF Core中, 密钥和属性是单独配置的 。

要指定密钥:

 modelBuilder.Entity().HasKey(t => t.ProdId); 

要配置属性不是自动增量:

 modelBuilder.Entity().Property(t => t.ProdId).ValueGeneratedNever(); 

我没有使用EF 7,但很少有人检查

  • 更改模型后,您需要更新数据库,迁移或手动更新
  • 如果您现在在字段上有自动增量,请检入数据库