我们正在使用Transaction Scope在.Net 3.0中执行交易。如何将其配置为使用“Read Committed SNAPSHOT Isolation”事务作为默认值?
注意:我们正在寻找一个地方的修复。即,SNAPSHOT的配置条目。
我们需要企业级配置。我们不能去每个使用交易范围的地方。是否有应用程序配置文件我们可以更改它?
答案 0 :(得分:2)
试试这个:
var scope = new TransactionScope(IsolationLevel.ReadCommitted)
根据您的更新,请尝试以下方式:
var scope = new TransactionScope(IsolationLevel.Snapshot)
查看IsolationLevel
枚举中的this MSDN page以获取更多信息。
<强>更新强>
AFAIK,你不能在设置文件级别配置它,只是因为IsolationLevel
由每个类型实例的构造决定,而这种事情的外部配置是非常罕见的(在顶部我的头脑我只能想到一个实例,它可以用ASP.NET和控件实现,但不是单一类型。)
此外,TransactionScope
是sealed
类,这意味着您无法继承和扩展其功能,以始终使用IsolationLevel.Snapshot
构建类型。
您可以创建自己的类型SnapshotIsolationLevelTransactionScope
(例如),并公开UnderlyingTransactionScope
属性,以便调用者可以使用您要使用的功能类 - 这样您就可以使用所需的隔离级别构造作用域,但仍需要更改现有代码,并在将来需要时继续使用此类型。