LINQ to SQL 中使用事务
从 DataContext 获取连接,打开会话,开启事务。事务保证同一会话内所有操作一致性,要么全成功,要么全失败。
using (var db = new DataClasses1DataContext())
{
if (db.Connection != null)
{
db.Connection.Open(); // 开启会话
}
else
{
return;
}
DbTransaction tran = db.Connection.BeginTransaction(); // 开启事务
db.Transaction = tran;
try
{
// 以下语句执行后不会真正写入数据库,只有提交事务后才生效
db.ExecuteCommand("create table #temp(id int)");
db.ExecuteCommand("insert into #temp(id) values({0})", 1);
db.ExecuteCommand("drop table #temp");
tran.Commit(); // 提交事务
}
catch (Exception)
{
tran.Rollback(); // 回滚事务
}
}Code language: PHP (php)
Previous: 临时表 + 事务批量操作
Next: 三表关联后按部分表分组,非分组表字段打包成列表