entity frameworkIDENTITY_INSERT ON不起作用

我有这个代码,应该插入带有标识插入的记录

using (MCT_DB_ArchiveEntities ent = new MCT_DB_ArchiveEntities()) { ent.ExecuteStoreCommand("SET IDENTITY_INSERT [clicks] ON"); ent.clicks.Attach(ck); ent.clicks.Context.ObjectStateManager.ChangeObjectState(ck, System.Data.EntityState.Added); ent.SaveChanges(); } 

我收到这个错误。

当IDENTITY_INSERT设置为OFF时,无法在表’clicks’中为identity列插入显式值。

它不应该工作。 仅当在与真实插入相同的连接上打开标识插入时,它才有效。 在您的情况下,可以使用两个不同的连接。 要使其工作,您必须维护自己的数据库连接并将其传递给ObjectContext的构造函数。

根据上一个问题,您需要开始上下文的交易。 保存更改后,您还必须重新标识“身份插入”列,最后必须提交事务。

 using (MCT_DB_ArchiveEntities ent = new MCT_DB_ArchiveEntities()) using (var transaction = ent.Database.BeginTransaction()) { var item = new User {Id = 418, Name = "Abrahadabra" }; ent.IdentityItems.Add(item); ent.Database.ExecuteSqlCommand("SET IDENTITY_INSERT Test.Items ON;"); ent.SaveChanges(); ent.Database.ExecuteSqlCommand("SET IDENTITY_INSERT [dbo].[User] OFF"); transaction.Commit(); }