【发布时间】:2015-12-27 18:52:04
【问题描述】:
我正在尝试从表中读取记录,即使表因特定事务而被锁定。
我正在使用下面的代码
public async Task<KeyValuePair<String, List<Om_Category>>> CategoryList(Om_Category obj)
{
try
{
using (var transaction = new TransactionScope(
TransactionScopeOption.Required,
new TransactionOptions
{
IsolationLevel = IsolationLevel.ReadUncommitted
},
TransactionScopeAsyncFlowOption.Enabled))
{
using (var categoryContext = new ModelGeneration())
{
categoryContext.Configuration.ProxyCreationEnabled = false;
var data = await categoryContext
.tblCategory
.ToListAsync();
transaction.Complete();
return new KeyValuePair<String, List<Om_Category>>("", data);
}
}
}
catch (Exception ex)
{
return new KeyValuePair<String, List<Om_Category>>(ex.Message, null);
}
}
但似乎我缺少实现 NoLocks 的东西。还是它 显示超时。我错过了什么吗?
【问题讨论】:
-
msdn.microsoft.com/en-us/data/dn456843.aspx 值得一读。 MS 现在推荐
categoryContext.Database.BeginTransaction而不是 TransactionScope。 BeginTransaction 接受隔离级别,因此您可以传入 ReadUncommitted。我不知道这是否能解决您的问题,但值得一试。
标签: c# asp.net-mvc-3 asp.net-mvc-4 c#-4.0 entity-framework-6