Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net core 停止EF Core使用合并插入_.net Core_Entity Framework Core_Ef Core 2.2 - Fatal编程技术网

.net core 停止EF Core使用合并插入

.net core 停止EF Core使用合并插入,.net-core,entity-framework-core,ef-core-2.2,.net Core,Entity Framework Core,Ef Core 2.2,我正在将我的应用程序转换为.NET Core。在这样做的过程中,我遇到了EF核心和插入的问题 如果我插入1或2行,那么EF Core将执行正常的SQLinsert语句 但当我有3行或更多行时,它会切换到MERGE语句,然后该语句会失败: 不允许列引用“inserted.MyKeyColumn”,因为它引用的基表在此语句中未被修改 我猜这是因为查询实际上是在一个视图上运行的,该视图上有一个insert触发器来更新视图下的实际表 正如我所说,当它使用insert语句时,它工作得很好。但当它尝试使用合

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

如果我插入1或2行,那么EF Core将执行正常的SQL
insert
语句

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

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

我猜这是因为查询实际上是在一个视图上运行的,该视图上有一个insert触发器来更新视图下的实际表

正如我所说,当它使用insert语句时,它工作得很好。但当它尝试使用合并插入时失败


有没有办法阻止EF Core使用
MERGE
进行插入?

因此,更多的研究显示了一种强制使用单个插入的方法:

 optionsBuilder.UseSqlServer(connectionString, options =>
        {
            options.MaxBatchSize(1);
        });
警告:这将导致所有插入都是单独的插入语句。对于大容量插入,性能不是很好