我有一个 DatabaseGeneratedOption.Identity
的模型,但在特定情况下,想保存具有特定主键值的实体;
即力id = 1
如果我只是分配值并保存,则 id 会被自动生成的值覆盖。
var model = new User {Id = 1};
dbContext.SaveChanges();
Asser.AreEqual(1, model.Id); // false
最佳答案
您可以在保存更改之前设置身份插入。这是样本。
var model = new User {Id = 1};
dbContext.Database.ExecuteSqlCommand("SET IDENTITY_INSERT [dbo].[User] ON");
dbContext.SaveChanges();
dbContext.Database.ExecuteSqlCommand("SET IDENTITY_INSERT [dbo].[User] OFF");
Asser.AreEqual(1, model.Id);
将 [dbo].[User] 替换为您的用户表的名称。
关于entity-framework - Entity Framework 覆盖 DatabaseGeneratedOption.Identity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31022375/