Based on this article here as well as the question: Difference Between Transaction and TransactionScope we know that TransactionScope
The TransactionScope class provides a simple way to mark a block of code as participating in a transaction, without requiring you to interact with the transaction itself. A transaction scope can select and manage the ambient transaction automatically. Due to its ease of use and efficiency, it is recommended that you use the TransactionScope class when developing a transaction application.
Whereas System.Transactions.Transaction
The Transaction class contains methods used by developers implementing resource managers for enlistment. It also provides functionalities for cloning a transaction and controlling the current transaction context.
The question here is whether there is a way to chose which of the two to use. The obvious answer is to use implicit transactions if you have no reason to use explicit, but what would that reason be?
Are the explicit transactions there, only to support legacy implementations?