Read this MSDN blog post with the new TransactionScope () constructor .
Excerpts:
The default constructor, TransactionScopes, is used for SQL Server Server Deployment purposes. TransactionScopes default default constructor sets the isolation level to Serializable and timeout up to 1 minute. IMO both of these settings are harmful when working against SQL Server.
A transaction timeout is bad because it is unclear. A SqlCommand already has a CommandTimeout property, which by default is 30 seconds. If you explicitly extend CommandTimeout to SqlCommand, its probably unexpected that your transaction will timeout before that. But at least the default timeout can be changed in the application configuration file.
user195488
source share