Dynamics CRM 2015 Update 1 系列(4): 自己定义主键 - Alternate Keys
Alternate Keys。 还是和系统集成相关的一个重量级Feature。使用该Feature能极大的提高开发数据集成接口的时间成本以及接口的执行效率。
在之前的Dynamics CRM 版本号中。我们仅仅能通过Entity的主键去推断记录的唯一性,如今我们能够通过使用Alternate Keys来推断记录的唯一性。更有趣的则是。我们能够自己去配置实体的Alternate Keys。
眼下Alternate Key仅仅支持文本和数字类型的字段,而且每一个实体最多仅仅能配置5个Key。只是这已经非常不错了,配置方法也非常easy:Setting–>Customization–>Entity–>Key
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="这里写图片描写叙述" title="">
假设我们输入的数据违法了Alternate Key规则,其会提演示样例如以下错误:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="这里写图片描写叙述" title="">
改功能对终端用户没什么太大的影响,可是对广大的开发者以及系统管理员来说,其真实一个非常牛X的功能,有了它,从此省去了花在字段映射上的时间了。以下这个代码片段演示了,怎么获取一个Alternate Key的员数据 。以及怎么使用它去替换Entity Primary Key
RetrieveEntityKeyRequest req1 = new RetrieveEntityKeyRequest();
req1.LogicalName = "new_accountkeyforerp";
req1.EntityLogicalName = "account";
RetrieveEntityKeyResponse rep1 = CrmSvc_Online.Execute(req1) as RetrieveEntityKeyResponse;
string accountNumber = "2";
string accountName = "Account2";
Entity acc1 = new Entity("account");
acc1.Id=Guid.Parse("{1B9D2BC3-7A0F-4D94-950A-B367D032092F}");
acc1.Attributes.Add("accountnumber", accountNumber);
acc1.Attributes.Add("name", accountName);
UpsertRequest upsertReq1=new UpsertRequest();
upsertReq1.Target=acc1;
CrmSvc_Online.Execute(upsertReq1);
//uses unique key to update/delete account
KeyAttributeCollection keys=new KeyAttributeCollection();
keys.Add("accountnumber",accountNumber);
keys.Add("name",accountName);
Entity acc2 = new Entity("account",keys);
acc2.Attributes.Add("telephone1", "1522222222");
CrmSvc_Online.Update(acc2);
Entity acc3 = new Entity("account", keys);
DeleteRequest req = new DeleteRequest();
req.Target = new EntityReference("account", keys);
CrmSvc_Online.Execute(req);
假设大家的项目里面涉及到大量的数据接口,最好还是试试该方法来设计你们的程序吧。
Dynamics CRM 2015 Update 1 系列(4): 自己定义主键 - Alternate Keys的更多相关文章
- Dynamics CRM 2015 Update 1 系列(3): API的那些事 - Old APIs VS New APIs
今天我们来看看API的变化.新系统中,去掉了一些经常使用的数据处理API,比如:SetStateRequest, SetBusinessUnitRequest, SetParentBusinessUn ...
- Dynamics CRM - 如何通过 C# Plugin 给 Contact的 主键(FullName)赋值
Contact 是 CRM 默认带有的 Entity,主键是 <FullName>,根据开发需求,与主键相关的字段都被设置成隐藏,包括了<Full Name>,<Firs ...
- 在标准实体特殊消息上注册插件及Dynamics CRM 2015中计算字段的使用
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复157或者20151005可方便获取本文,同时可以在第一时间得到我发布的最新的博文信息,follow me! 前面的 插件系列博客教程 讲述了 ...
- Dynamic CRM 2015学习笔记 系列汇总
这里列出所有 Dynamic CRM 2015学习笔记 系列文章,方便大家查阅.有任何建议.意见.需要,欢迎大家提交评论一起讨论. 本文原文地址:Dynamic CRM 2015学习笔记 系列汇总 一 ...
- Dynamics CRM 2013 SP1 升级到Dynamics CRM 2015
首先截图一下我要升级的Dynamics CRM 2013版本如下图,可以看到是打了SP1后的CRM 2013. 运行CRM 2015简体中文版的安装文件CRM2015-Server- ...
- Dynamics CRM 2015/2016新特性之三十二:新增乐观并发处理
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复215或者20160328可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...
- 在Dynamics CRM 2015中通过3CX插件(以及3CX windows phone)拨出电话
背景 在On-premises部署的Dynamics CRM中实现通过网页拨通客户电话的功能 要点 3CX 提供了开箱即用的Dynamics CRM Solution,只需要在Microsoft Dy ...
- Dynamics CRM 2015 Online Update1 UI界面的更新变化
听说出 Dynamics CRM 2015 Online Update1了,立马跑去申请了个30天试用版简单的看了下,UI上的变化还是让人耳目一新的,也可能是被CRM2013的UI蹂躏太久了没 ...
- Microsoft Dynamics CRM 2015 and Microsoft Dynamics CRM 2016 Performance and Scalability Documentation
摘要: 本人微信公众号:微软动态CRM专家罗勇 ,回复285或者20181126可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me ...
随机推荐
- 聊聊jdbc statement的fetchSize
在使用MySQL的JDBC时,如果查询结果集过大,使用一次查询,可能会出现Java.lang.OutOfMemoryError: Java heap space问题,因为DB服务器端一次将查询到的结果 ...
- LeetCode题解:Rotate List
Rotate List Given a list, rotate the list to the right by k places, where k is non-negative. For exa ...
- iOS图标抖动效果
开始抖动 -(void)BeginWobble { srand([[NSDate date] timeIntervalSince1970]); float rand=(float)random(); ...
- Asp.net Page_ClientValidate 的应用和跳过
其实网上说道的Page_ClientValidate的博客其实有很多.这里就不列举了,最近在开发遇到一个问题给大家分享一下, 整理后的代码 如下: HTML code, <%@ Page Lan ...
- mysql主从备份及原理分析
一.mysql主从备份(复制)的基本原理mysql支持单向.异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.mysql复制基于主服务器在二进制日志中跟踪所有对数据库的更 ...
- Java-Shiro(二):HelloWord
新建项目&&配置pom.xml导入包 新建maven java project项目: 修改pom.xml: <project xmlns="http://maven.a ...
- VC++导出具有命名空间的函数
问题现象 原因分析 解决的方法 1 问题现象 导出具有命名空间的函数和类.源码例如以下: 头文件MiniMFC.h namespace MiniMFC { __declspec(dllexport) ...
- 一家VC支持企业的发展轨迹——了解每次融资后股权和期权的变化,以及股份是如何被稀释的【转载】
来源:ReachVc 该文是 ReachVC 上一篇文章,是某个投资公司副总裁的独立博客,文章写得不错.如果你是一个不太了解融资的创业者,那么本文将对你很有用.通过武林外传同福客栈的例子,了解每次融资 ...
- Office 如何添加Adobe Acrobat虚拟PDF打印机
在服务中找到Print Spooler服务,如果是停止的点击启动,如果已经启动点击重新启动 在打印机中添加本地打印机 使用现有端口,然后选择Adobe PDF选项,下一步,然后在厂商中选择Ad ...
- Linux网络编程:基于TCP的程序开发回顾篇《转》
面向连接的TCP程序设计 基于TCP的程序开发分为服务器端和客户端两部分,常见的核心步骤和流程: 其实按照上面这个流程调用系统API确实可以完全实现应用层程序的开发,一点问题没有.可随着时间的推移,你 ...