LINQ TO SQL,顾名思义,涉及到了数据库操作。那么就会有一个事务的概念,例如,假设我们需要一次性插入两个实体,但希望保证这两个操作的完整性的话。
1. 隐式事务
其实,即便我们不写代码,LINQ TO SQL也会自动创建一个事务的。默认事务隔离级别为ReadCommitted
2. 显式事务
我们也可以自己写代码,来明确地控制事务,默认事务隔离级别为ReadCommitted
NorthwindDataContext db = new NorthwindDataContext();
db.Connection.Open();
db.Transaction = db.Connection.BeginTransaction();
。。。。。
db.Transaction.Commit();
db.Connection.Close();
3. 显式分布式事务
我们也可以使用TransactionScope对象,来定义分布式事务。
【注意】TransactionScope的默认隔离级别为可串行化,可能带来并发锁冲突问题。
关于它的详细介绍,有兴趣的朋友可以参考
http://msdn.microsoft.com/zh-cn/library/ms172152(VS.80).aspx
最后大概要谈一下并发控制的问题:这个问题的出现就在于,某些时候,某个客户端读取