MS CRM 2011中PartyList类型字段的实例化

    在MS CRM中,有一组实体,其类别是“活动”实体,其中包括有电子邮件、电话联络、传真、新建、约会、定期约会、任务等实体,这一类实体的作用有如下几点:

    第一,每一种活动实体,代表了组织内部员工之间以及内部员工与客户之间的沟通渠道;

    第二,每一个活动实体的实例,代表了组织内部员工的工作内容以及完成工作内容的方式;

    可见,活动实体是非常重要的实体,使用这些实体,将割裂的、分散于各处的客户数据、销售数据、市场数据等数据串联起来、流动起来。可以说,这些活动实体是纽带、是桥梁。

    在项目实施过程中,不可避免的,可能需要使用代码创建某一类活动实体的实例。而活动实体很大的一个特点就是,其中的PartyList类型字段的创建、更新等维护工作。

    PartyList类型,代表了一个多方参与的概念,举例来说,就是电子邮件中的“收件人”字段,换言之,可以在这个字段中,选择一个实体或者多个实体的多个实例,也就是一个可以有多个lookup值的字段。

    在SDK中,对PartyList类型字段的操作有相应的代码,本文中的代码,是以晚绑定方式,介绍如何维护PartyList类型字段。

    在SDK的“New Types in Microsoft Dynamics CRM SDK”部分,对于PartyList类型的介绍是“EntityCollection”或者“ActivityParty[]”类型。EntityCollection类,是Microsoft.Xrm.Sdk命名空间中的一个类,用于代表一个实体集合,其构造函数有两个:

    EntityCollection();

    EntityCollection(IList<Entity>);

    可见,EntityCollection实体内部也是对集合实体进行封装后, 为了开发方便而构造出来的一个实体。

    那么,在构造PartyList类型的属性的EntityCollection实例时,传入什么样的Entity实例呢?在SDK中,PartyList类型的介绍时,已经说明,是EntityCollection实例或者ActivityParty[]数组,可见,构造EntityCollection实例时,传入的IList<Entity>中的Entity应该是ActivityParty实体的实例。

    那么,ActivityParty又是什么样子的呢?从SDK中,可以看到该类型的属性中,非常重要的就是PartyId,该属性的数据类型是Lookup,代表了PartyList中的一个参与方实例,而多个参与方实例,构成了一个PartyList类型的实例。既然PartyId是Lookup类型的,那么就使用EntityReference去构造。

    由上面的分析,最后可以形成的代码样例如下:

1             Entity email = new Entity("email");
2 email["subject"] = "test";
3 Entity toActivityParty = new Entity("activityparty");
4 toActivityParty["partyid"] = new EntityReference("systemuser", new Guid("7CB98851-7ECC-E011-90FB-782BCB24D1E0"));
5 EntityCollection to = new EntityCollection(new List<Entity>() { toActivityParty });
6 email["to"] = to;
7 email["description"] = "haha";
8 orgService.Create(email);

  

    如此,即可创建一个电子邮件的实例,该Email的接收人,就是主键值为"7CB98851-7ECC-E011-90FB-782BCB24D1E0"的系统用户。

转载于:https://www.cnblogs.com/StoneGarden/archive/2011/08/31/2160769.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值