C#TransactionScope类配置

时间:2011-04-11 11:51:33

标签: c#-3.0

我们正在使用Transaction Scope在.Net 3.0中执行交易。如何将其配置为使用“Read Committed SNAPSHOT Isolation”事务作为默认值?

注意:我们正在寻找一个地方的修复。即,SNAPSHOT的配置条目。

我们需要企业级配置。我们不能去每个使用交易范围的地方。是否有应用程序配置文件我们可以更改它?

1 个答案:

答案 0 :(得分:2)

试试这个:

var scope = new TransactionScope(IsolationLevel.ReadCommitted)

根据您的更新,请尝试以下方式:

var scope = new TransactionScope(IsolationLevel.Snapshot)

查看IsolationLevel枚举中的this MSDN page以获取更多信息。

<强>更新

AFAIK,你不能在设置文件级别配置它,只是因为IsolationLevel由每个类型实例的构造决定,而这种事情的外部配置是非常罕见的(在顶部我的头脑我只能想到一个实例,它可以用ASP.NET和控件实现,但不是单一类型。)

此外,TransactionScopesealed类,这意味着您无法继承和扩展其功能,以始终使用IsolationLevel.Snapshot构建类型。

您可以创建自己的类型SnapshotIsolationLevelTransactionScope(例如),并公开UnderlyingTransactionScope属性,以便调用者可以使用您要使用的功能类 - 这样您就可以使用所需的隔离级别构造作用域,但仍需要更改现有代码,并在将来需要时继续使用此类型。