阻止EF Core使用合并插入

时间:2019-12-04 19:08:55

标签: .net-core entity-framework-core ef-core-2.2

我正在将我的应用程序转换为.NET Core。这样做时,我遇到了EF Core和插入的问题。

如果我插入1或2行,则EF Core将执行普通的SQL INSERT语句。

但是当我有3行或更多行时,它将切换到MERGE语句,然后该语句失败,并显示:

  

不允许使用列引用“ inserted.MyKeyColumn”,因为它引用了此语句中未修改的基表。

我的猜测是,由于查询实际上是在视图上运行的,该视图上具有插入触发器以更新视图下的实际表。

就像我说的那样,当它使用插入语句时,这很好用。但是当它尝试使用合并插入时失败。

是否可以阻止EF Core使用MERGE进行插入?

1 个答案:

答案 0 :(得分:0)

因此,更多的研究表明了一种强制使用单个刀片的方法:

 optionsBuilder.UseSqlServer(connectionString, options =>
        {
            options.MaxBatchSize(1);
        });

警告:这将导致所有插入都是单独的插入语句。大容量刀片效果不佳。