Если я сделаю следующее:
Using scope = New TransactionScope()
entries.Content.ReadAs(Of IList(Of WebMaint)).AsParallel.ForAll(Sub(entry)
_repos.Update(entry)
End Sub)
scope.Complete()
End Using
TransactionScope не работает. Если я поставлю точку останова на scope.complete, никакая транзакция не будет активной, и обновления уже завершены.
Если я поменяю его на:
Using scope = New TransactionScope()
entries.Content.ReadAs(Of IList(Of WebMaint)).ToList().ForEach(Sub(entry)
_repos.Update(entry)
End Sub)
scope.Complete()
End Using
Все работает как положено. Кто-нибудь знает, почему параллельная версия не работает правильно?