阻止 EF Core 使用合并插入

2023-11-30

我正在将我的应用程序转换为 .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(使用前将#替换为@)

阻止 EF Core 使用合并插入 的相关文章

随机推荐