基础才是重中之重~何为原子化操作
占占定义:
原子化操作,操作原子化,这在软件开发中经常被听到,那到底什么是操作原子化呢,其实从字面上不难理解,原子化就是一体化,整体化,原子化操作就是将多个操作组合在一起,要么这个组合一起发生,要么一个都不发生,这就是操作的原子化,在程序开发中,我们经常使用事务来干这事!
网上的解释:
一种不可分割的操作。从外部看,原子操作要么整体发生,要么根本不发生。例如,在实现业务交易的数据管理系统中,把每一笔业务交易都作为数据库上的原子化操作。这就意味着组成业务的所有数据更新操作或者都被执行,或者一个也不被执行;一部分更新操作被执行,而其他更新操作都不被执行的情况永远不可能发生。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(); } }
感谢阅读!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示