У меня есть ситуация, когда мне нужно использовать транзакции Entity Framework.Между двумя сохранениями базы данных я звоню в службу покоя, которая может занять до 10 секунд.
Мой вопрос: является ли это хорошей практикой, остается ли соединение с базой данных открытым все время во время транзакции (междудва SaveChanges
звонка)?
Какие есть альтернативные способы сделать это?
using (var context = new BloggingContext())
{
using (var dbContextTransaction = context.Database.BeginTransaction())
{
try
{
// do your changes
context.SaveChanges();
//http call to service with timeout 10sec
using (var response = (HttpWebResponse)request.GetResponse())
{
}
// do another changes
context.SaveChanges();
dbContextTransaction.Commit();
}
catch (Exception ex)
{
//Log / handle
}
}
}