Apr 24, 2020 02:43 PM|bruce (sqlwork.com)|LINK
Rather than using the distributed transaction manager (2 phase commit) you can use sql server builtin batch transaction processes. If you use the same connection you can do a transaction batch which is much more efficient than 2 phase commit.
as the example shows if you can use the same connection for all transactions, use BeginTransaction or just execute the command.
Note: and again, transaction scope is not supported with thread agile applications like asp.net (core or standard). Asp.net standard may supports it if no async calls are done.
also you appear to be using all sync database calls, which will kill performance in asp.net core.