EF Core Fluent API(如何从主键中删除标识)
EF Core Fluent API (How to remove identity from primary key)
看起来很简单,但我不知道如何告诉 EF 核心不要创建具有自动递增标识列的实体的主键。我想自己插入自己的主键值。我意识到我可以使用属性来做到这一点,但我想知道如何通过流利 API 设置行为。我从 属性() 方法中看到了 UseSqlServerIdentityColumn() 方法,但我需要将其关闭(而不是打开)。我也尝试了以下代码,但它不起作用。
context.Database.ExecuteSqlCommand("SET IDENTITY_INSERT dbo.Employees ON");
context.SaveChanges();
context.Database.ExecuteSqlCommand("SET IDENTITY_INSERT dbo.Employees OFF");
https://docs.microsoft.com/en-us/ef/core/modeling/generated-properties
modelBuilder.Entity<EntityType>()
.Property( et => et.Id )
.ValueGeneratedNever();
有属性也可以
[Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
看起来很简单,但我不知道如何告诉 EF 核心不要创建具有自动递增标识列的实体的主键。我想自己插入自己的主键值。我意识到我可以使用属性来做到这一点,但我想知道如何通过流利 API 设置行为。我从 属性() 方法中看到了 UseSqlServerIdentityColumn() 方法,但我需要将其关闭(而不是打开)。我也尝试了以下代码,但它不起作用。
context.Database.ExecuteSqlCommand("SET IDENTITY_INSERT dbo.Employees ON");
context.SaveChanges();
context.Database.ExecuteSqlCommand("SET IDENTITY_INSERT dbo.Employees OFF");
https://docs.microsoft.com/en-us/ef/core/modeling/generated-properties
modelBuilder.Entity<EntityType>()
.Property( et => et.Id )
.ValueGeneratedNever();
有属性也可以
[Key, DatabaseGenerated(DatabaseGeneratedOption.None)]