.net core 停止EF Core使用合并插入
我正在将我的应用程序转换为.NET Core。在这样做的过程中,我遇到了EF核心和插入的问题 如果我插入1或2行,那么EF Core将执行正常的SQL.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语句时,它工作得很好。但当它尝试使用合
insert
语句
但当我有3行或更多行时,它会切换到MERGE
语句,然后该语句会失败:
不允许列引用“inserted.MyKeyColumn”,因为它引用的基表在此语句中未被修改
我猜这是因为查询实际上是在一个视图上运行的,该视图上有一个insert触发器来更新视图下的实际表
正如我所说,当它使用insert语句时,它工作得很好。但当它尝试使用合并插入时失败
有没有办法阻止EF Core使用
MERGE
进行插入?因此,更多的研究显示了一种强制使用单个插入的方法:
optionsBuilder.UseSqlServer(connectionString, options =>
{
options.MaxBatchSize(1);
});
警告:这将导致所有插入都是单独的插入语句。对于大容量插入,性能不是很好