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支持
评论列表

发表评论

评论内容
昵称:
关联文章

EF事务提交
EF并发处理,防止并发修改数据
git 合并多次提交
EF 值转换
EF Code First
EF Core dotnet-ef 常用命令,指令
javascript表单Form转json进行ajax提交Jquery表单json提交
git里commit提交后,修改描述内容
git删除全部提交历史,成为一个新的仓库
Microsoft Store 桌面应用发布流程(二)之提交应用
EF 分页 SQL2008 报错 Featch Next
EF MySQL取值时出错: Specified cast is not valid
EF Linq查找所有子节点或者所有父节点
JQuery将form表单转换为json,并提交后台处理
VS .NET使用EF添加实体数据模型向导添加连接报错
解决winform使用EF6 第一次查询会慢个几秒钟
EF Core使用MySQL
GZDBHelper中Excute方法,外部在同一链接下执行,如果要获取输出的参数值,用此方法执行,配合GetParamValue执行,或者多次提交
EF Cre表实体属性介绍
YES-CMS 内容管理系统 后台配置提交报错

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