具有长时间运行操作的实体框架事务

时间:2019-04-23 20:41:35

标签: entity-framework transactions

我遇到需要使用实体框架交易的情况。在两次数据库保存之间,我正在拨打一次休息服务,该过程最多可能需要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
        }
    }
}

0 个答案:

没有答案