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开发框架