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开发框架网发布内容,转载请附上原文出处连接
post YES开发框架  
 
 

