Dynamics CRM 2015 Update 1 系列(6): 并发执行优化 - Optimistic Concurrency

原创 2015年07月07日 21:37:09

在使用企业级软件的时候,我们最怕碰到的就是数据的脏读和脏写了,但是这似乎是永远无法避免的痛,随着并发访问的提示,数据的出错率往往是直线攀升。
对于某些对数据完整性要求严格的场景,我们往往需要花大量的时间来实现事务的分隔以及数据的锁定。比如:订票模块,我们并不希望出现实际订阅数大于实际票数,这样尴尬的场景吧。
在Dynamics CRM 2015 Update1 中,我们可以轻松使用OC功能来控制数据的读写安全性,保证我们的数据安全性。目前该功能只正对两类API生效:UpdateRequest和DeleteRequest。
我们可以为这两类API指定ConcurrencyBehavior开关:永远覆盖,默认或者检查冲突。我们看看下面的代码片段吧:

  QueryExpression query = new QueryExpression();
            query.EntityName = "account";
            query.Criteria.AddCondition(new ConditionExpression("name", ConditionOperator.Equal, "account1"));

            EntityCollection result = CrmSvc_Online.RetrieveMultiple(query);

            if (result.Entities.Count > 0)
            {
                Entity account = result.Entities[0];
                account["telephone1"] = "123456789";

                UpdateRequest uptReq = new UpdateRequest();
                uptReq.Target = account;
                uptReq.ConcurrencyBehavior = ConcurrencyBehavior.Default;

                CrmSvc_Online.Execute(uptReq);


            }

如果在调用UpdaeRequest之前,我们修改了这个Account记录,那么系统会提示如下错误。
这里写图片描述

版权声明:本文为博主原创文章,未经博主允许不得转载。

Microsoft Dynamics CRM 安装注意事项(请朋友们补充)

最近安装Microsoft Dynamics CRM 遇到的了很多烦人的小问题,特此记录下需要注意事项 仅供参考: 服务器:Windows Server 2012 R2 Datacenter 安装及顺...
  • zhurcn
  • zhurcn
  • 2016年07月12日 14:47
  • 1426

Dynamics CRM 权限整理二

接上篇http://blog.csdn.net/vic0228/article/details/50510605,继续列举CRM相关权限 prvReadBusinessUnit privilege(...
  • woniu1104913
  • woniu1104913
  • 2016年01月27日 15:13
  • 2382

如何通过Dynamics CRM 2015修改用户密码

在Dynamics CRM平台是没有提供账户密码修改功能的,一般我们要实现这个功能或者让域管理员协助修改,或者将本机加入到域后,通过任务管理器自行修改。 但第一点会让自己的密码暴露,第二点则不太可能实...
  • ieicihc
  • ieicihc
  • 2016年07月05日 12:22
  • 1332

Dynamics CRM 2015 Update 1 系列(4): 自定义主键 - Alternate Keys

Alternate Keys, 还是和系统集成相关的一个重量级Feature。使用该Feature能极大的提高开发数据集成接口的时间成本以及接口的运行效率。 在之前的Dynamics CRM 版本中...
  • ghostbear
  • ghostbear
  • 2015年07月04日 13:39
  • 2280

Dynamics CRM 2011 编程系列:第7节实体的CRUD(Update,Delete)

  • 2012年03月05日 23:19
  • 35KB
  • 下载

Conditional Update (Optimistic Concurrency)

Windows Azure provides a number of mechanisms to help developers deal with concurrency around storag...
  • riverlau
  • riverlau
  • 2012年01月09日 23:42
  • 335

Dynamics CRM 2011 编程系列 (6):JS脚本编程之实体的CRUD[Create,Read]

这节我们来谈谈Dynamics CRM中用JS对实体进行CRUD的操作。CRUD操作也就是Create,Read,Update,Delete的缩写,CRUD操作也是编程的最基本操作。建议您在阅读本章前...
  • ghostbear
  • ghostbear
  • 2012年03月04日 20:45
  • 10619

Dynamics CRM 2011 编程系列(14):JS编程之表单控件的执行上下文

现在我们来看看表单控件的执行环境上下文吧。这里的执行环境和上节介绍的用户登录环境差不多,控件的执行环境就是表示该控件在什么场景下被调用的。方便事件根据环境来做相应的处理。    我们先来了解下他们吧...
  • ghostbear
  • ghostbear
  • 2012年03月22日 10:54
  • 2731

Dynamics CRM 2011 编程系列(33):Ribbon的开发三(按钮的执行环境)

之前的两篇博文《Dynamics CRM 2011 编程系列(31):Ribbon的开发一(添加按钮,选项卡,Jewel)》,《Dynamics CRM 2011 编程系列(32):Ribbon的...
  • ghostbear
  • ghostbear
  • 2012年08月06日 17:39
  • 2955

Microsoft Dynamics CRM 2013/2015 选项集的多选

CRM中的选项集多选一直是客户需求中的必选项,但从CRM进国内的3.0时代开始到目前的2015版本均没有提供该功能,但既然客户要了就得想办法满足,既然CRM本身的功能上不支持,那我们只有使用非官方支持...
  • woniu1104913
  • woniu1104913
  • 2015年11月06日 15:06
  • 2097
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Dynamics CRM 2015 Update 1 系列(6): 并发执行优化 - Optimistic Concurrency
举报原因:
原因补充:

(最多只允许输入30个字)