------------------
出库单细表:
单号    行号    物料编号  入库数量  生产订单
IN986    1         A         100     PO97
IN986    2         B         200     PO97
IN986    3         A         400     PO86
IN986    4         B         600     PO86
-------------------
仓库库存表
物料编号     批号        库存量
   A         LOT91         80
   A         LOT96        600
   B         LOT75        150
   B         LOT82        900
------------------
如果不用存储过程,直接用.net业务处理层去做出库记帐,最佳效率的方案是怎样的?
------------------
我见过这样的.net方案:
1. 在一个出库单的业务组件 提取出库单数据集合 , 对DataRow集合遍历;
2. 对每一出库DataRow对仓库库存表的业务组件提取相同物料编号的数据集合,遍历扣减库存,在事务中持久化一次 ;
3. 继续遍历下一个出库DataRow对象,对仓库库存表的业务组件提取相同物料编号的数据集合,遍历扣减库存,再在事务中持久化一次
4. 直到DataRow集合遍历完成,提交事务;
这样对数据库的往返次数是不是太频繁了吗,这是不是一个可以接受的好的解决方案?有没有更好的解决方案
5. 如果说有,用sql server存储进程,就可以很好解决这个问题,但如果不用存储过程呢?
------------------