LINQ to SQL 中使用事务

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)

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注