使.net REST API批量上传更快而不会导致SQL冲突唯一键



我有一个使用SQL Server数据库的c# . net 6 Web API。我有一个API来批量上传一次几千行。如果我将服务层编写为每次插入一行,它可以工作,但它是。如果每200行调用一次db.SaveChanges(),速度会快3倍。(我试过了)。

问题是当一条记录失败时(例如违反UNIQUE KEY),那么所有200插入记录失败。

我试图提前检查关键违规(针对数据库和200组中的其他记录),这在localhost上有效…但是由于一些奇怪的原因,当我把它部署到Azure时失败了。

有什么办法可以做到吗?我必须在"快"one_answers"快"之间做出选择吗?或"reliable" ?

SaveChanges捕获DbUpdateException失败后,您可以分离或纠正失败的实体并再次尝试。SaveChanges()使用事务,因此如果失败,则没有保存任何更改。

注意,您可能需要尝试多次,因为通常只有第一次失败才会返回给客户端。

相关内容

  • 没有找到相关文章

最新更新