我正在将我的应用程序转换为.NET Core。这样做时,我遇到了EF Core和插入的问题。
如果我插入1或2行,则EF Core将执行普通的SQL INSERT
语句。
但是当我有3行或更多行时,它将切换到MERGE
语句,然后该语句失败,并显示:
不允许使用列引用“ inserted.MyKeyColumn”,因为它引用了此语句中未修改的基表。
我的猜测是,由于查询实际上是在视图上运行的,该视图上具有插入触发器以更新视图下的实际表。
就像我说的那样,当它使用插入语句时,这很好用。但是当它尝试使用合并插入时失败。
是否可以阻止EF Core使用MERGE
进行插入?
答案 0 :(得分:0)
因此,更多的研究表明了一种强制使用单个刀片的方法:
optionsBuilder.UseSqlServer(connectionString, options =>
{
options.MaxBatchSize(1);
});
警告:这将导致所有插入都是单独的插入语句。大容量刀片效果不佳。