Linq to sql 在提交更新的时候默认会创建事务,一部分修改发生错误的话其它修改也不 会生效: ctx.Customers.Add(new Customer { CustomerID = "abcdf", CompanyName = "zhuye" }); ctx.Customers.Add(new Customer { CustomerID = "abcde", CompanyName = "zhuye" }); ctx.SubmitChanges(); 假设数据库中已经存在顾客 ID 为“abcde”的记录,那么第二次插入操作失败将会导致第 一次的插入操作失效。执行程序后会得到一个异常,查询数据库发现“abcdf”这个顾客也没 有插入到数据库中。 如果每次更新后直接提交修改,那么我们可以使用下面的方式做事务: if (ctx.Connection != null) ctx.Connection.Open(); DbTransaction tran = ctx.Connection.BeginTransaction(); ctx.Transaction = tran; try { CreateCustomer(new Customer { CustomerID = "abcdf", CompanyName = "zhuye" }); CreateCustomer(new