EF事务提交


EF6.0直接可以bBeginTransaction

using (var transaction = contextOsap.Database.BeginTransaction())
{
    try
    {
        contextOsap.BulkDelete(lstMain);
        contextOsap.BulkInsert(listAdd);
        contextOsap.BulkInsert(listAddDetails);
        //throw new Exception("事务失败");
        transaction.Commit();
    }
    catch (Exception ex)
    {
        transaction.Rollback();
    }
}

EF 5.0中没有BeginTransaction方法,需要手工open连接

using (var conn = contextOsap.Database.GetEntityConnection())
{
    conn.Open();
    using (var transaction = conn.BeginTransaction())
    {
        try
        {
            contextOsap.BulkDelete(lstMain);
            contextOsap.BulkInsert(listAdd);
            contextOsap.BulkInsert(listAddDetails);
            //throw new Exception("事务失败");
            transaction.Commit();
        }
        catch (Exception ex)
        {
            transaction.Rollback();
        }

    }
}

BulkDelete方法是对EF的扩展(Z.EntityFramework.Extensions),批量提交数据效率会提高很多,但是此种方法不会提交关联表

版权声明:本文为YES开发框架网发布内容,转载请附上原文出处连接
YES开发框架
上一篇:FastReport IIF语句使用
下一篇:VUE Cli3项目添加LESS支持
评论列表

发表评论

评论内容
昵称:

联系我们
联系电话:15090125178(微信同号)
电子邮箱:garson_zhang@163.com
站长微信二维码
微信二维码