【发布时间】:2017-06-13 23:40:02
【问题描述】:
在 Entity Framework Core 1.0 RC2(以前的 Entity Framework 7 RC2)中,默认情况下,所有整数主键都是 auto increment 字段。我想尽一切办法将其删除。从使用数据注释到流畅的 API,什么都行不通。
使用数据注释:
[Key, Column(Order = 1, TypeName = "INT"), DatabaseGenerated(DatabaseGeneratedOption.None)]
使用流畅的 API:
modelBuilder.Entity<tblProduct>().HasKey(t => t.ProdId).HasAnnotation("DatabaseGenerated", DatabaseGeneratedOption.None);
//OR use the following
modelBuilder.Entity<tblProduct>().HasKey(t => t.ProdId).HasAnnotation("DatabaseGenerated", 0);
//OR use the following
modelBuilder.Entity<tblProduct>().HasKey(t => t.ProdId).HasAnnotation("Sqlite:Autoincrement", false);
没有任何效果:(
你能帮帮我吗?
更新
根据要求,这是我在运行 add-migration LocalDB_v1
后得到的表脚本migrationBuilder.CreateTable(
name: "tblProduct",
columns: table => new
{
ProdId = table.Column<int>(nullable: false)
.Annotation("Sqlite:Autoincrement", true),
Name = table.Column<string>(nullable: true),
Description = table.Column<string>(nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_tblProduct", x => x.ProdId);
});
...
...
...
【问题讨论】:
-
你能发布表格脚本吗?
-
更改模型后是否生成迁移?
-
@VolodymyrBilyachat - 我已按要求更新了我的问题。是的,在我更改模型后,我删除了现有的迁移和快照并重新运行 add-migration LocalDB_v1
-
正如你所说,它适用于 RC1,然后我会更新到该版本并将错误发布到 github
-
获取更新。目前有 EF Core v1.1.0 版本,停留在 RC(旧)版本会施加限制且没有修复。
标签: c# sqlite entity-framework-core ef-fluent-api