为什么使用TranscationScope
的默认构造函数会有害?
有人可以指我解释一下吗?
答案 0 :(得分:4)
请在MSDN博客using new TransactionScope() Constructor上阅读此文章。
摘录:
为了SQL的目的,TransactionScope的默认构造函数是 Sever数据库编程,坏了。 TransactionScope的默认值 构造函数将隔离级别默认为Serializable和 超时至1分钟。 IMO这两种设置在工作时都是有害的 针对SQL Server。
事务超时很糟糕,因为它太模糊了。一个SqlCommand 已经有一个CommandTimeout属性,默认为30秒。如果 你在SqlCommand上显式扩展了CommandTimeout 可能意外的是你的交易会在此之前超时。 但至少可以在应用程序中更改超时默认值 配置文件。