我在WCF服务中使用Entity Framework6.1,并且希望使用READ UNCOMMITTED隔离级别来包围我的SELECT查询,因为其他批处理更新将被插入到我正在读取的表中,并且不希望在对该表执行读取操作时锁定这些批处理更新。这基本上模拟了使用NOLOCK的SELECT。
这段代码也以异步方式使用。因此,我不能简单地使用TransacactionScope。请注意,我也在使用.Net 4.5.1框架。
我可以将TransactionScope上的隔离级别设置为ReadUncommitted,但TransactionScopeOption的缺省值为ReadCommitted。我看不到任何更改隔离级别的方法。
有什么方法可以改变隔离级别吗?如果我不能设置隔离级别,我的查询是否可以在上述情况下运行。
实际上,如果我不能将隔离级别设置为"NOLOCK",我甚至没有必要包括TransactionScopeAsyncFlowOption。
发布于 2016-04-09 06:40:03
使用构造函数选项,并将TransactionScopeAsyncFlowOption指定为第三个参数,而不是第一个参数:
using (var scope = new TransactionScope(
TransactionScopeOption.Required,
new TransactionOptions { IsolationLevel = IsolationLevel.ReadUncommitted },
TransactionScopeAsyncFlowOption.Enabled))
{
}https://stackoverflow.com/questions/23430029
复制相似问题