Dynamics CRM 2015/2016新特性之三十二:新增乐观并发处理

我们以实际的例子来看看:
- using Microsoft.Xrm.Client;
- using Microsoft.Xrm.Client.Services;
- using Microsoft.Xrm.Sdk;
- using Microsoft.Xrm.Sdk.Messages;
- using Microsoft.Xrm.Sdk.Query;
- using System;
- using System.ServiceModel;
- namespace LuoYongLab
- {
- class Program
- {
- static void Main(string[] args)
- {
- try
- {
- var orgService = new OrganizationService(new CrmConnection("CRM"));
- var accountEntity = orgService.Retrieve("account", new Guid("FB243517-37A3-E511-80C7-000D3A807EC7"), new ColumnSet("name"));
- Console.WriteLine("查找到的客户名称是: " + accountEntity.GetAttributeValue<string>("name"));
- Console.WriteLine("请在CRM中更改下这个客户的值后按回车键继续!");
- Console.ReadKey();
- accountEntity["name"] = "素格格新疆特产店-通过代码修改的";
- UpdateRequest accountUpdate = new UpdateRequest()
- {
- Target = accountEntity,
- ConcurrencyBehavior = ConcurrencyBehavior.IfRowVersionMatches
- };
- orgService.Execute(accountUpdate);
- Console.WriteLine("程序运行完成");
- Console.ReadKey();
- }
- catch (FaultException ex)
- {
- Console.WriteLine("程序出现异常:ex.Message=" + ex.Message);
- Console.ReadKey();
- }
- }
- }
- }
运行程序后,提示我修改记录的时候我改动下,然后再Update就会跑出异常了:

- using Microsoft.Xrm.Client;
- using Microsoft.Xrm.Client.Services;
- using Microsoft.Xrm.Sdk;
- using Microsoft.Xrm.Sdk.Messages;
- using Microsoft.Xrm.Sdk.Query;
- using System;
- using System.ServiceModel;
- namespace LuoYongLab
- {
- class Program
- {
- static void Main(string[] args)
- {
- try
- {
- var orgService = new OrganizationService(new CrmConnection("CRM"));
- var accountEntity = new Entity("account");
- accountEntity.Id = new Guid("FB243517-37A3-E511-80C7-000D3A807EC7");
- accountEntity["name"] = "素格格新疆特产店-通过代码修改的";
- UpdateRequest accountUpdate = new UpdateRequest()
- {
- Target = accountEntity,
- ConcurrencyBehavior = ConcurrencyBehavior.IfRowVersionMatches
- };
- orgService.Execute(accountUpdate);
- Console.WriteLine("程序运行完成");
- Console.ReadKey();
- }
- catch (FaultException ex)
- {
- Console.WriteLine("程序出现异常:ex.Message=" + ex.Message);
- Console.ReadKey();
- }
- }
- }
- }

- using Microsoft.Xrm.Client;
- using Microsoft.Xrm.Client.Services;
- using Microsoft.Xrm.Sdk;
- using Microsoft.Xrm.Sdk.Messages;
- using Microsoft.Xrm.Sdk.Query;
- using System;
- using System.ServiceModel;
- namespace LuoYongLab
- {
- class Program
- {
- static void Main(string[] args)
- {
- try
- {
- var orgService = new OrganizationService(new CrmConnection("CRM"));
- var accountEntity = orgService.Retrieve("account", new Guid("FB243517-37A3-E511-80C7-000D3A807EC7"), new ColumnSet("name"));
- Console.WriteLine("查找到的客户名称是: " + accountEntity.GetAttributeValue<string>("name"));
- Console.WriteLine("请在CRM中更改下这个客户的值后按回车键继续!");
- Console.ReadKey();
- DeleteRequest request = new DeleteRequest()
- {
- Target = new EntityReference(accountEntity.LogicalName, accountEntity.Id),
- ConcurrencyBehavior = ConcurrencyBehavior.IfRowVersionMatches
- };
- orgService.Execute(request);
- Console.WriteLine("程序运行完成");
- Console.ReadKey();
- }
- catch (FaultException ex)
- {
- Console.WriteLine("程序出现异常:ex.Message=" + ex.Message);
- Console.ReadKey();
- }
- }
- }
- }
Dynamics CRM 2015/2016新特性之三十二:新增乐观并发处理的更多相关文章
- Dynamics CRM 2015/2016新特性之三十四:有了插件日志,调试插件so easy!
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复217或者20160330可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...
- Dynamics CRM 2015/2016新特性之三十三:有了ExecuteTransactionRequest,再也不用担心部分成功部分失败了
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复216或者20160329可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...
- Dynamics CRM 2015/2016新特性之七:有了文档模板,打印分析So Easy
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复190或者20160216可方便获取本文,同时可以在第一时间得到我发布的最新的博文信息,follow me! 从CRM 2015 UR1开始, ...
- Dynamics CRM 2015/2016 Web API:Unbound Action 和 Bound Action
上篇文章介绍了Bound/Unbound Function.今天我们来看看Action吧.像我之前说的:Function和Action之前的差别能够简单理解为.Function不改动数据,可是Acti ...
- Dynamics CRM 2015/2016 Web API:Unbound Function 和 Bound Function
今天我们来看看Dynamics CRM Web API Function 吧, 这是一个新概念,刚接触的时候我也是比較的迷糊.这种命名确实是和之前的那套基于SOAP协议的API全然联系不上.好了,不说 ...
- Dynamics CRM 2015/2016 Web API:Unbound Custom Action 和 Bound Custom Action
今天我们再来看看Bound/Unbound Custom Action吧,什么是Custom Action?不知道的小伙伴们就out了,Dynamics CRM 2013就有了这个功能啦.和WhoAm ...
- Dynamics CRM 2015/2016 Web API:新的数据查询方式
今天我们来看看Web API的数据查询功能,尽管之前介绍CRUD的文章里面提到过怎么去Read数据,可是并没有详细的去深究那些细节,今天我们就来详细看看吧.事实上呢,Web API的数据查询接口也是基 ...
- Dynamics CRM 2015/2016 Web API:聚合查询
各位小伙伴们,今天是博主2016年发的第一篇文章.首先祝大家新年快乐.工资Double,哈哈.今天我们来看一个比較重要的Feature--使用Web API运行FetchXML查询! 对的,各位.你们 ...
- 【原创】Dynamics CRM 2015/2016,以PDF的形式打开SSRS报表。
基本步骤: 使用SSRS建立报表,以下的例子是以记录的GUID作为报表的参数 获取ReportSession 和 ControlId来调用报表 以PDF的形式预览报表 一.根据报表的名称获取报表的GU ...
随机推荐
- textarea中文本高亮选中
最近在实现原文/译文句段高亮对比显示,和有道翻译类似,如下图所示: 最初的解决方案是采用富文本编辑器,把所有句段信息都用HTML标签包裹,操作空间比较大,页面上需要的功能几乎都可以实现,但是由此带来了 ...
- 【C#】学习笔记(4) 值类型和引用类型相关(Null相关)
Reference and Value Types Value Types(值类型): struct(结构体) 独立的实例或者是拷贝 值的改变不会影响其它拷贝 值就是它所代表的信息 没有引用,所以不可 ...
- Unity3D_Transform_位置、角度、缩放及其他
1.位置 transforn.position 世界位置 transform.localPosition 相对父类位置 在屏幕左上方显示方法: private void OnGUI() { GUIL ...
- 记录C#连接数据库工具类
一.SQL Server /// <summary> /// 数据库的通用访问代码 /// 此类为抽象类, /// 不允许实例化,在应用时直接调用即可 /// </summary&g ...
- 算法复杂度O(logn)详解
一.O(logn)代码小证明 我们先来看下面一段代码: int cnt = 1; while (cnt < n) { cnt *= 2; //时间复杂度为O(1)的程序步骤序列 } 由于cnt每 ...
- postman---Postman配置环境变量和全局变量
我们在测试的过程中,遇到最多的问题也可以是环境的问题了吧,今天开发用了这个测试环境,明天又换了另一个测试环境,这样对于我们测试非常的麻烦,特别最接口的时候需要来回的输入环境地址比较麻烦,今天我们看看强 ...
- Druid-代码段-4-1
所属文章:池化技术(一)Druid是如何管理数据库连接的? 本代码段对应主流程4,丢弃连接的守护线程: //连接池瘦身,参考主流程4 public class DestroyConnectionThr ...
- Cisco pppoe上网设置
1.配置虚拟端口: interface Dialer1 ip address negotiated ip nat outside ip virtual-reassembly in encapsulat ...
- Day4- Python基础4 深浅拷贝、三目运算、列表生成式,迭代器&生成器、装饰器
本节内容: 1.深浅拷贝 2.三目运算 3.迭代器和生成器 4.装饰器 1.深浅拷贝 拷贝意味着对数据重新复制一份,深浅拷贝的含义就是:对于修改复制的数据是否会影响到源数据,拷贝操作对于基本数据结构需 ...
- cf rock is push 【dp】
附上学习的博客:https://blog.csdn.net/u013534123/article/details/102762673 大致题意:一个迷宫,里面有很多箱子,你可以向右或者向下走.当你遇到 ...