У меня консольное приложение, настроенное с использованием шаблона Repository and Unit of Work. Все отлично работает, и когда есть исключение, ничего не сохраняется В противном случае все сохраняется.
Однако у меня есть особая ситуация, когда я хочу, чтобы некоторые из моих процессов сохранялись, даже если где-то есть исключение.
Например, у меня есть что-то вроде следующего:
try
{
// Process 1: inserts record using repository for EntityModel1
// Process 2: updatesrecord using repository for EntityModel2
// Process 3: inserts record using repository for EntityModel3
db.Commit();
}
catch (Exception ex)
{
//Log or whatever
}
Но когда происходит процесс 2, я хочу сохранить это в базе данных, даже если после успешного завершения этого процесса есть исключение.
Как этого достичь, продолжая использовать единицу работы?
Есть ли способ вызвать определенный процесс и заставить db.commit просто зафиксировать процессы, которые еще не были зафиксированы, или отменить ожидающие изменения, если произойдет исключение?