我有一种类似于:
public async Task SaveItemsAsync(IEnumerable<MyItem> items)
{
using (var ts = new TransactionScope())
{
foreach (var item in items)
{
await _repository.SaveItemAsync(item);
}
await _repository.DoSomethingElse();
ts.Complete();
}
}
这当然有问题,因为TransactionScope
不适合异步/等待。
它失败的原因是InvalidOperationException
带着信息:
"A TransactionScope must be disposed on the same thread that it was created."
.NET 4.0,不能升级到4.5或4.5.1。因此,我的项目中的异步/等待行为由Microsoft.Bcl.Async NuGet Package
我在这个或任何其他OOB封装找不到TransactionScopeAsyncFlowOption
.
如果没有,是否有实现同样结果的替代办法?
相似问题