C# 无法从crm 2011插件中的avtivity检索第三个实体

C# 无法从crm 2011插件中的avtivity检索第三个实体,c#,dynamics-crm-2011,dynamics-crm,crm,C#,Dynamics Crm 2011,Dynamics Crm,Crm,我正在开发一个用于发送短信的crm插件 我的解决方案中有3个实体 第一:活动实体。这是主实体,用户可以使用此实体向多个联系人发送sms。(ppp\U sms) 第二:用于保存用户名和密码等配置的非活动实体ppp\U SMS配置 第三:另一个用于保存sms结果的非活动实体。我想保存短信息,一个接一个地保存结果。例如:如果用户向3个联系人发送短信,他或她应该打开第一个实体,选择3个联系人,编写消息并发送。发送后,系统将在第三个实体中创建3条记录,每条记录对应于每个联系人 我的问题是:我可以检索第一个

我正在开发一个用于发送短信的crm插件

我的解决方案中有3个实体

第一:活动实体。这是主实体,用户可以使用此实体向多个联系人发送sms。
(ppp\U sms)

第二:用于保存用户名和密码等配置的非活动实体<代码>ppp\U SMS配置

第三:另一个用于保存sms结果的非活动实体。我想保存短信息,一个接一个地保存结果。例如:如果用户向3个联系人发送短信,他或她应该打开第一个实体,选择3个联系人,编写消息并发送。发送后,系统将在第三个实体中创建3条记录,每条记录对应于每个联系人

我的问题是:我可以检索第一个和第二个实体信息,而我不能检索第三个实体信息

这是我的全部代码: 我无法检索
ppp\u sentsms
实体信息

public void Execute(IServiceProvider serviceProvider)
{
    if (serviceProvider == null)
    {
        throw new ArgumentNullException("serviceProvider");
    }

    IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
    IOrganizationServiceFactory factory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
    IOrganizationService service = factory.CreateOrganizationService(new Guid?(context.InitiatingUserId));
    ITracingService service2 = (ITracingService)serviceProvider.GetService(typeof(ITracingService));
    QueryExpression expression = new QueryExpression("ppp_smsconfiguration");
    expression.PageInfo.ReturnTotalRecordCount = true;
    ColumnSet set = new ColumnSet();
    set.AllColumns = true;
    expression.ColumnSet = set;
    EntityCollection entitys = service.RetrieveMultiple(expression);

    QueryExpression expression1 = new QueryExpression("ppp_sentsms");
    expression1.PageInfo.ReturnTotalRecordCount = true;
    ColumnSet setSentSMS = new ColumnSet();
    setSentSMS.AllColumns = true;
    expression1.ColumnSet = setSentSMS;
    EntityCollection entitys1 = service.RetrieveMultiple(expression1);

    throw new Exception(entitys1.TotalRecordCount.ToString());

    if (context.InputParameters.Contains("Target") && (context.InputParameters["Target"] is Entity))
    {

        Entity entity2 = (Entity)context.InputParameters["Target"];

       // Entity preEntity = (Entity)context.PreEntityImages["PreImage"];

        this.dbMobileNo.Clear();

        this.dbTo.Clear();
        this.dbMessage = "";

        if (entity2.LogicalName == "ppp_sms")
        {
            QueryExpression expression3 = new QueryExpression("ppp_sms");
            ColumnSet set2 = new ColumnSet();
            set2.AllColumns = true;
            expression3.ColumnSet = set2;
            ConditionExpression item = new ConditionExpression();
            item.AttributeName = "activityid";
            this.CurrentSmsGuid = (Guid)entity2.Attributes["activityid"];
            item.Values.Add(this.CurrentSmsGuid);
            FilterExpression expression5 = new FilterExpression();

            expression5.Conditions.Add(item);
            expression3.Criteria = expression5;
            EntityCollection entitys2 = service.RetrieveMultiple(expression3);
        }
    }
}

这是一个在创建前或创建后运行的插件吗? 如果查询表达式让你发疯,我建议你继续早起。
请记住,有时,如果插件在预创建中运行,您将永远无法检索实体,尤其是在同步运行的情况下。

代码在做什么?