占占定义:

原子化操作,操作原子化,这在软件开发中经常被听到,那到底什么是操作原子化呢,其实从字面上不难理解,原子化就是一体化,整体化,原子化操作就是将多个操作组合在一起,要么这个组合一起发生,要么一个都不发生,这就是操作的原子化,在程序开发中,我们经常使用事务来干这事!

网上的解释:

一种不可分割的操作。从外部看,原子操作要么整体发生,要么根本不发生。例如,在实现业务交易的数据管理系统中,把每一笔业务交易都作为数据库上的原子化操作。这就意味着组成业务的所有数据更新操作或者都被执行,或者一个也不被执行;一部分更新操作被执行,而其他更新操作都不被执行的情况永远不可能发生。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;//删除原有的订单明细项OrderItemif (list.First().OrderItem.Count != 0)foreach (var item in list.First().OrderItem)DeleteOrderItem(item.ID);//加入新的订单明细项OrderItemif (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();}elsereturnValue = 0;scope.Complete();}}

感谢阅读!

转载于:https://www.cnblogs.com/lori/archive/2013/02/06/2901538.html

基础才是重中之重~何为原子化操作相关推荐

  1. 基础才是重中之重~再说面向接口的编程

    回到目录 之前在我的文章中有对接口进行过讲解,但感觉讲的还是不够清晰,不够利针见血,这次我把面向接口的编程里,自认为比较核心的两点说一下: 接口详细介绍请看我的这篇文章 基础才是重中之重~为什么C#有 ...

  2. 基础才是重中之重~通过人类的生活来学习Delegate

    一个人(people),在他60岁之后,就宣布进入晚年了,在这个期间要多注意身体,多体检. namespace NET基础才是重中之重{/// <summary>/// 人类/// < ...

  3. 基础才是重中之重~类是怎么执行的

    回到目录 对于一个程序员来说,有必要知道一个概念的同时也解它的执行过程,这样对于写出更好更安全的程序是有帮助的. 大牛们不是一天就成为大牛的,而是经过一步一步的实践,不断的知识的积累才成为大牛的,呵呵 ...

  4. 基础才是重中之重~方法override详解

    回到 目录 之所以写这篇文章,完全是因为这次代码审核,这次代码审核过程当中,出现了很多我认为基础知识不够扎实的问题,所以,打算把它们记录下来,共大家分享. 方法的override,即方法的覆写或者重写 ...

  5. 只更新代码,然后发布版本:基于 Serverless Devs 原子化操作阿里云函数计算

    众所周知,随着时间的发展,Serverless 命令行工具也逐渐的玩出了更多的花样,就目前来看,常见的形态有两种,一种是通过 Yaml 来进行资源的描述,另外一种是纯粹的命令行操作,而不依赖这些内容. ...

  6. 第二十二回  基础才是重中之重~ThreadStatic静态字段在每个线程里的唯一性

    static修饰符我们不会陌生,它代表静态,可以修饰你的类,方法,字段和属性等等,今天主要说一个为静态字段加ThreadStatic特性会给程序代来什么样的变化.静态字段static field,我更 ...

  7. 基础才是重中之重~.net中的显式事务与隐式事务

    回到目录 .net中的事务可以分为显式的和稳式的,显式的就是说需要我们手动去指定事务的提交和回滚,而稳式的是.net帮助我们进行管理的,当你的事务代码段没有发生异常时,它会帮助我们进行提交,反之,进行 ...

  8. Lind.DDD.UoW~方法回调完成原子化操作

    回到目录 本文来自于实践中的不足 在最近开始过程中,遇到了一个问题,之前设计的工作单元UoW只支持Insert,Update,Delete三种操作,即开发人员可以将以上三种操作同时扔进工作单元,由工作 ...

  9. 基础才是重中之重~DictionaryK,V里V的设计决定的性能

    回到目录 字典对象Dictionary<K,V>我们经常会用到,而在大数据环境下,字典使用不当可能引起性能问题,严重的可能引起内在的溢出! 字典的值建议为简单类型,反正使用Tuple< ...

最新文章

  1. 无聊中安装的MAC OS截图欣赏
  2. .NET领域最为流行的IOC框架之一Autofac
  3. 政府网站公祭日,如何使网站整体变灰
  4. Activiti 简易教程
  5. python删除数据库_用Python删除Cosmos数据库文档
  6. 写个自己用的jdbc 简单框架
  7. winpe查看不到linux硬盘,winpe不显示硬盘?教你轻松搞定pe下不显示硬盘问题
  8. 网站打不开的原因及解决办法
  9. Path.Direction.CCW与Path.Direction.CW的意思
  10. asp.net form身份认证不定时认证失败的问题 排查
  11. 迁移学习具体场景与方法
  12. 90%的人都浪费了阳台?这6种装修方案建议照搬~
  13. 浅谈计算机教学的现状分析,浅谈中职计算机专业教学的现状与对策
  14. 一次UDP收不到问题排查
  15. 排队论模型(七):排队系统的优化
  16. 通俗理解同步通信与异步通信
  17. 基于手机支付方式的电子商务网站
  18. 计算机与人类关系的英语作文,计算机的英语作文
  19. tewa-500e 虚拟服务器,关于成都电信送的光纤猫设置 TEWA-500E
  20. TDengine中超级表的TAG管理

热门文章

  1. 转 linux进程内存到底怎么看 剖析top命令显示的VIRT RES SHR值
  2. 设计模式(观察者模式)
  3. 【TP5.0】tp5.0实现连接多个数据库,实现类似3.2M(‘table’,'prefix_','db_config2')的CURD操作...
  4. TCP端口状态说明ESTABLISHED、TIME_WAIT、 CLOSE_WAIT
  5. Python Day Eleven
  6. docker启动远程管理接口
  7. 网站访问慢解决思路详细图解
  8. linux查看指定程序的资源占用
  9. VS2010中的新特点(上)
  10. 【原创视频教程】学生信息管理系统1--登陆