У меня есть таблица, которая ссылается на файлы в общей папке в нашей сети (сохраняет путь к файлу в базе данных).
У меня есть кнопка, которая должна удалить запись из базы данных и файла из файловой системы:
foreach (var report in reports)
{
string filePath = report.ReportPath;
if (File.Exists(filePath));
{
File.Delete(filePath);
}
context.ReportGenerations.DeleteObject(report);
context.SaveChanges();
}
При удалении файла или удалении записи базы данных может быть выбрано исключение, и если это произойдет, я бы не хотел, чтобы ни одна из операций не завершилась.
Есть ли простой способ гарантировать, что обе операции выполнены успешно?