我正在将我的应用程序转换为 .NET Core。在此过程中,我遇到了 EF Core 和插入的问题。
如果我插入 1 或 2 行,那么 EF Core 会执行正常的 SQLINSERT
陈述。
但是当我有 3 行或更多行时,它会切换到MERGE
语句,然后失败并显示:
不允许使用列引用“inserted.MyKeyColumn”,因为它引用此语句中未修改的基表。
我的猜测是,这是因为查询实际上是在一个视图上运行的,该视图上有一个插入触发器来更新视图下的实际表。
就像我说的,当它使用插入语句时,效果很好。但当它尝试使用合并插入时会失败。
有没有办法阻止 EF Core 使用MERGE
用于插入?
因此,更多的研究展示了一种强制使用单个插入件的方法:
optionsBuilder.UseSqlServer(connectionString, options =>
{
options.MaxBatchSize(1);
});
警告:这将导致所有插入都是单独的插入语句。对于大容量插入来说性能不太好。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)