I think the problem may be asynchronous use.
Try creating a transaction as follows:
TransactionScope transaction = new TransactionScope(System.Transactions.TransactionScopeAsyncFlowOption.Enabled);
(you need to add System.Transactions ) to the links.
To complete the transaction, go to transaction.Complete() to roll back do transaction.Dispose() .
trailmax
source share