关于petshop的疑惑,研究过的可以进来讨论一下

superxiaomm 2006-12-12 09:40:42
我拜读了ms的petshop3.0,对于里面的framework已经熟悉了,接着就是细读代码。在读代码的时候,觉得有个问题。由于我没有sqlserver,所以看不到运行结果,求教了。
问题如下:
在你的Cart类里面如果用户A加入了商品Item1 2次,而Item1也就库存2件,没有问题,public void Add(string ItemId),但是没有提交订单。
用户B也同样进行以上的操作,他也会得到Item1 2件的承诺
当两个人同时提交订单的时候,问题就来了PetShop.BLL.OrderInsert.Insert会调用
inventory.TakeStock( order.LineItems);
我觉得一定会有个用户出错了,但是看了PetShop.SQLServerDAL.Inventory.TakeStock(LineItemInfo[] items)之后发现连try..catch都没有,我认为应该是不会报错了。是不是很奇怪啊?
求教ing,提出大家对petshop的看法把
...全文
110 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhaochong12 2006-12-13
  • 打赏
  • 举报
回复
http://blog.csdn.net/xingyukun2006/archive/2006/08/04/1018124.aspx

9.使用System.Transactions进行事务管理

这个名字空间也是2.0中刚刚加入的,这使得我们可以在不注册COM+事务的前提下处理分布事务。在PetShop.BLL.OrderSynchronous中有这样一段代码,是在加入一个订单的时候从账户上扣除相应的金额,这显然是一个Transaction,要么commit,要么rollback。看看这段代码:

确实很巧妙.
zhaochong12 2006-12-13
  • 打赏
  • 举报
回复
我只知道这个, 没有读过. 资料而已, 加油.
zhaochong12 2006-12-13
  • 打赏
  • 举报
回复
http://www.cnblogs.com/dwp008/archive/2006/07/24/458333.html
superxiaomm 2006-12-13
  • 打赏
  • 举报
回复
没有人读过这个程序嘛?那么经典的程序啊~~

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧