EF.NET Core:在一个事务中有多个插入流

问题描述 投票:0回答:1

我有很多行(300k +)可以在最短的时间内插入SQL Server数据库,所以这个想法是使用并行化和分区数据,并使用异步将数据泵入SQL,X线程。时间,每个上下文100行,上下文被回收以最大程度地减少跟踪开销。但是,这意味着要并行使用多个连接,因此CommittableTransaction / TransactionScope将使用分布式事务,这将导致并行事务征募操作返回臭名昭著的"This platform does not support distributed transactions."异常。

我确实需要能够提交/回滚整个upsert。在批处理上传过程中,它的一部分以及任何错误都应根据应用程序回滚到先前工作/稳定条件的更改。

我有什么选择?缺少一个连接且没有并行化吗?

c# sql-server entity-framework .net-core task-parallel-library
1个回答
2
投票

不。完全错误的方法。请勿为此使用EF-批量插入ETL并不是对象关系映射器的目标,并且许多设计决策对此都不起作用。您也不会用小汽车代替卡车来运输20吨的货物。

© www.soinside.com 2019 - 2024. All rights reserved.