占占定义:
原子化操作,操作原子化,这在软件开发中经常被听到,那到底什么是操作原子化呢,其实从字面上不难理解,原子化就是一体化,整体化,原子化操作就是将多个操作组合在一起,要么这个组合一起发生,要么一个都不发生,这就是操作的原子化,在程序开发中,我们经常使用事务来干这事!
网上的解释:
一种不可分割的操作。从外部看,原子操作要么整体发生,要么根本不发生。例如,在实现业务交易的数据管理系统中,把每一笔业务交易都作为数据库上的原子化操作。这就意味着组成业务的所有数据更新操作或者都被执行,或者一个也不被执行;一部分更新操作被执行,而其他更新操作都不被执行的情况永远不可能发生。RAID阵列必须实现原子化的写操作,使得客户机能够正确地重组单磁盘语义。原子化操作用以确保部分组建的失效不会破坏存储的数据。
C#中的原子化操作:
using (TransactionScope scope = new TransactionScope()) { var list = _context.Order.Include("OrderItem") .Where(x => x.ID == order.ID); if (list.Count() > 0) { //更新Order列 Order _order = list.First(); _order.Count = order.Count; _order.Delivery = order.Delivery; _order.Favorable = order.Favorable; _order.Freightage = order.Freightage; _order.OrderNumber = order.OrderNumber; _order.PersonID = order.PersonID; _order.Price = order.Price; _order.TotalPrice = order.TotalPrice; //删除原有的订单明细项OrderItem if (list.First().OrderItem.Count != 0) foreach (var item in list.First().OrderItem) DeleteOrderItem(item.ID); //加入新的订单明细项OrderItem if (order.OrderItem.Count != 0) { foreach (var item in order.OrderItem) { var _orderItem = new OrderItem(); _orderItem.Count = item.Count; _orderItem.Goods = item.Goods; _orderItem.OrderID = item.OrderID; _orderItem.Price = item.Price; AddOrderItem(_orderItem); } } returnValue = _context.SaveChanges(); } else returnValue = 0; scope.Complete(); } }
感谢阅读!
本文转自博客园张占岭(仓储大叔)的博客,原文链接:基础才是重中之重~何为原子化操作,如需转载请自行联系原博主。