Welcome

首页 / 软件开发 / LINQ / Linq to SQL之使用事务

Linq to SQL之使用事务2011-08-04 博客园 紫色阴影事务是一个原子的工作单位,必须完整的完成单位里的所有工作,要么全部执行,要么全部都不执行 。如果提交事务,则事务执行成功;如果回滚事务,则事务执行失败。 事务具备4个基本特性--ACID(原 子性、一致性、孤立性和持久性)。

在Linq to SQL中,有三种方法创建事务:

如果没有指定任何事务,那么当调用SubmitChanges方法时,DataContext会默认创建一个事务。

使用TransactionScope创建轻量级事务

给DataContext的Transaction属性指定事务

下面我用代码分别来说明这几种创建事务的方法,以Northwind数据库为例,先来看看直接使用 SubmitChanges:

NorthwindDataContext ctx = new NorthwindDataContext();

Customer c1 = new Customer { CustomerID = "TESTA", CompanyName = "testa"s company" };
Customer c2 = new Customer { CustomerID = "TESTBC", CompanyName = "testb"s company" };

ctx.Customers.Add(c1);
ctx.Customers.Add(c2);

ctx.SubmitChanges();

上面这段代码中,先创建了两个Customer对象然后添加到DataContext里面,其中的c2的CustomerID赋 值为"TESTBC",长度为六个字符,而数据库中该字段约束为5个字符长度,这样在SubmitChanges的时候应 该会有异常抛出。果然在执行的时候抛出了SqlException,提示字符将被截断。