Транзакция Entity Framework с продолжительной операцией - PullRequest
0 голосов
/ 23 апреля 2019

У меня есть ситуация, когда мне нужно использовать транзакции 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
        }
    }
}
...