Выполнение блока кода в транзакции
У меня есть сценарий, в котором нам нужно выполнить несколько операций, но все они должны быть атомарными, что включает в себя сначала запись строк в таблицу, а затем использование идентификатора для этих строк, запись файла для каждого из них по сетевому пути и последующую запись в другие строки таблицы.
Что мне здесь нужно, так это то, что все это должно быть атомарной операцией, то есть все шаги должны завершиться успешно, если какой-либо из процессов по какой-то причине потерпит неудачу, я хочу, чтобы изменения, сделанные в этом контексте, были откатаны.
Я знаю о классе TransactionScope, который мы используем в ADO.Net и Entity Framework. Но мне нужен какой-то механизм для выполнения этих операций ввода-вывода и действий БД в одной транзакции.
Что я уже пробовал:
Я пробовал использовать TransactionScope, но не могу понять, как использовать его для обеих операций. Он обычно работает для работы с БД, но не уверен, как он будет вести себя для операции дискового ввода-вывода, такой как создание файла.