强制在EF Core下显式设置ID时无法添加实体

时间:2019-07-30 13:09:46

标签: c# sql-server asp.net-core-2.2 ef-core-2.2

我想做种子,然后在控制器中执行类似的操作。

Member member = new Member { Id = MemberId1, UserName = "member1" };
Context. Add(member);
Context.SaveChanges();

这会产生一个错误,告诉我不允许显式设置ID。我知道了,为什么会这样,但是由于条目是我的种子,因此无论如何我都需要这样做。根据{{​​3}},我可以像这样暂时关闭检查。

Member member = new Member { Id = MemberId1, UserName = "member1" };
Context. Add(member);
Context.Database.ExecuteSqlCommand("SET IDENTITY_INSERT blipp.Members ON");
Context.SaveChanges();
Context.Database.ExecuteSqlCommand("SET IDENTITY_INSERT blipp.Members OFF");

好吧,您知道吗,尽管我的配置中有entity.HasKey(e => e.Id),但仍然会产生错误,告诉我没有任何设置。我在这里迷路了。

  

'表'blipp.Members'没有标识属性。无法执行SET操作。'

当我直接在数据库中尝试此操作时,也会发生同样的情况。由于EF和拥有实体的限制,我无法以通常的方式使用HasData()进行播种。原来的错误是这个。

  

当IDENTITY_INSERT设置为OFF时,无法为表“操作”中的标识列插入显式值

我在这里做什么?

0 个答案:

没有答案