06Linqtosql--并发和事务.docVIP

  • 3
  • 0
  • 约5.31千字
  • 约 6页
  • 2016-08-12 发布于安徽
  • 举报
06Linqtosql--并发和事务.doc

06 Linq to sql—并发与事务 知识点 检测并发 首先使用下面的SQL语句查询数据库的产品表: select * from products where categoryid=1 查询结果如下图: 为了看起来清晰,我已经事先把所有分类为1产品的价格和库存修改为相同值了。然后执行下面的程序: var query = from p in ctx.Products where p.CategoryID == 1 select p; foreach (var p in query) p.UnitsInStock = Convert.ToInt16(p.UnitsInStock - 1); ctx.SubmitChanges(); // 在这里设断点 我们使用调试方式启动,由于设置了断点,程序并没有进行更新操作。此时,我们在数据库中运行下面的语句: update products set unitprice= unitprice + 1 where categoryid = 1 然后在继续程序,会得到修改并发(乐观并发冲突)的异常,提示要修改的行不存在或者已经被改动。当客户端提交的修改对象自读取之后已经在数据库中发生改动,就产生了修改并发。解决并发的包括两步,一是查明哪些对象发生并发,

文档评论(0)

1亿VIP精品文档

相关文档