Dynamics CRM 2015 Update 1 系列(6): 并发执行优化 - Optimistic Concurrency
来源:互联网 发布:淘宝文胸买家秀 编辑:程序博客网 时间:2024/06/07 17:49
在使用企业级软件的时候,我们最怕碰到的就是数据的脏读和脏写了,但是这似乎是永远无法避免的痛,随着并发访问的提示,数据的出错率往往是直线攀升。
对于某些对数据完整性要求严格的场景,我们往往需要花大量的时间来实现事务的分隔以及数据的锁定。比如:订票模块,我们并不希望出现实际订阅数大于实际票数,这样尴尬的场景吧。
在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记录,那么系统会提示如下错误。
1 0
- Dynamics CRM 2015 Update 1 系列(6): 并发执行优化 - Optimistic Concurrency
- Dynamics CRM 2015 Update 1 系列(1): 简介
- Dynamics CRM 2015 Update 1 系列(2): Upsert API
- Dynamics CRM 2015 Update 1 系列(7): 消息事务 - ExecuteTransactionRequest
- Conditional Update (Optimistic Concurrency)
- Dynamics CRM 2015 Update 1 系列(3): API的那些事 - Old APIs VS New APIs
- Dynamics CRM 2015 Update 1 系列(4): 自定义主键 - Alternate Keys
- Dynamics CRM 2015 Update 1 系列(5): 获取最近更新的数据 - RetrieveEntityRequest
- Dynamics CRM2016 New features in Microsoft Dynamics CRM Online 2015 Update 1 are now available
- Dynamics CRM 2011编程系列
- Dynamics CRM 2011编程系列
- Microsoft Dynamics CRM系列:安装
- Dynamics CRM 2015 Update 0.1 - Error.ActionFailed Microsoft.Crm.Tools.Admin.InstallDatabaseUpdatesAc
- Dynamics CRM 2011 编程系列(7):JS编程之实体的CRUD[Update,Delete]
- MS Dynamics CRM 2015 安装教程1
- 关于 Dynamics CRM 2015
- Dynamics CRM 2011 编程系列(14):JS编程之表单控件的执行上下文
- Dynamics CRM 2011 编程系列(33):Ribbon的开发三(按钮的执行环境)
- springMVC学习笔记-请求处理&springMVC form标签
- Implement Queue using Stacks
- C++ HOJ 求解二叉树的宽度(队列实现)
- 几种推荐算法的总结
- 京都中文离线地图App上线
- Dynamics CRM 2015 Update 1 系列(6): 并发执行优化 - Optimistic Concurrency
- 【C++ STL】算法 <algorithm>中各种算法解析
- 手把手教你把Vim改装成一个IDE编程环境(图文)
- gdb调试--堆栈相关
- 把 字符串转换为整数的算法
- Bluetooth: ATT and GATT
- Log4j在Web中
- Power of Two
- dynamic_cast