删除 EF Core 1.0 RC2(以前的 EF 7 RC2)中的自动增量
Remove Auto Increment in EF Core 1.0 RC2 (former EF 7 RC2)
在Entity FrameworkCore 1.0 RC2(前Entity Framework7 RC2)中,默认情况下,所有整型主键都是自增字段。我尝试了一切来删除它。从使用数据标注到流利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
之后得到的 table 脚本
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);
});
...
...
...
我没有使用 EF 7,但有几点需要检查
- 更改模型后需要更新数据库、迁移或手动
- 如果你现在在字段上有自动增量,请检查数据库
在 EF Core 中,。
要指定密钥:
modelBuilder.Entity<tblProduct>().HasKey(t => t.ProdId);
要配置 属性 不自动递增:
modelBuilder.Entity<tblProduct>().Property(t => t.ProdId).ValueGeneratedNever();
在Entity FrameworkCore 1.0 RC2(前Entity Framework7 RC2)中,默认情况下,所有整型主键都是自增字段。我尝试了一切来删除它。从使用数据标注到流利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
之后得到的 table 脚本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);
});
...
...
...
我没有使用 EF 7,但有几点需要检查
- 更改模型后需要更新数据库、迁移或手动
- 如果你现在在字段上有自动增量,请检查数据库
在 EF Core 中,
要指定密钥:
modelBuilder.Entity<tblProduct>().HasKey(t => t.ProdId);
要配置 属性 不自动递增:
modelBuilder.Entity<tblProduct>().Property(t => t.ProdId).ValueGeneratedNever();