使用早期绑定类检索相关实体将返回null

时间:2013-03-19 21:01:01

标签: c# dynamics-crm-2011

一些背景知识:我在C#中为CRM 2011编写自定义工作流活动,并且我正在使用CrmSvcUtil.exe生成的早期绑定类。我的插件将机会作为其唯一的输入,并且应该检查其相关活动,然后在机会上设置一个字段来表示机会是否需要更多的后续操作。我目前的问题是,每当我尝试检索相关活动时,结果为null。这是我的代码的相关部分:
Opportunity currentOpportunity = (Opportunity) service.Retrieve(context.PrimaryEntityName, context.PrimaryEntityId, new ColumnSet(true));
currentOpportunity.Opportunity_ActivityPointers

我的印象是,由于机会与活动之间存在一对多的关系,这将抓住所有相关活动,但它似乎并没有这样做。
我还是CRM和C#的新手,所以对我做错的任何见解都表示赞赏!

1 个答案:

答案 0 :(得分:2)

如果您使用早期绑定类,首先创建数据上下文(在我的情况下,它是 XrmServiceContext )。您可以检索所有ActivityPointers,其中对象是您的商机

OrganizationServiceProxy orgserv;    
using(var xrm = new XrmServiceContext(orgserv))
    {
     //Opportunity currentOpportunity = ...

     IQueryable<ActivityPointer> activityPointers = xrm.ActivityPointerSet.Where(a =>
       a.RegardingObjectId == currentOpportunity.ToEntityReference());
    }

如果您需要此集合中的某些特定活动,ActivityPointer包含ActivityId和ActivityTypeCode。更多详情here

希望有所帮助:)