Я пытаюсь объединить два действия:
- Внести изменения в базу данных
- Отправить письмо
Я надеюсь сделать что-то вроде
using (DbContextTransaction trans=..., serializable)
{
try
{
db stuff;
context.SaveChanges();
Smtp.Send(...);
trans.Commit();
}
catch (...)
{
trans.Rollback();
}
}
Мой вопрос здесь заключается в том, существует ли угловой случай, когда SaveChanges завершается успешно, Smtp.Send завершается успешно, и, тем не менее, происходит ошибка Commit? (Потеря связи с БД исключена.)
Базовой базой данных будет либо SQL-сервер, либо SQLite. То есть нет базы данных Oracle с отложенными ограничениями.