使用SQL Server 2017和Entityframework.dll / EntityframeworkSqlServer.dll版本6.0.0.0,使用以下代码绝对可以正常运行:
using (var transaction = connect.Database.BeginTransaction())
{
connect.Database.ExecuteSqlCommand("SET IDENTITY_INSERT [dbo].[Consignment] ON");
connect.SaveChanges();
connect.Database.ExecuteSqlCommand("SET IDENTITY_INSERT [dbo].[Consignment] OFF");
transaction.Commit();
}
从那时起,我将Visual Studio升级到版本16.3.10(最新版本),今天,在运行SaveChanges()时,出现以下错误:
当IDENTITY_INSERT设置为ON或将复制用户插入到NOT FOR REPLICATION身份列中时,必须为表中的身份列指定显式值。
我已经仔细检查了是否已提供标识列的值(整数),可以在SSMS中运行SQL命令,据我所知,自昨天以来唯一发生变化的是Visual Studio版本。谁能想到以任何方式更改Visual Studio版本都会导致这种情况发生?