2015-02-05 30 views
2

我試圖檢索其「requiredattendees」包含在帳戶列表中的實體之一的約會。 requiredattendees有一種PartyList。 我的查詢是這樣的:與PartyList QueryExpression中的錯誤

var query = new QueryExpression("appointment") 
{ 
     ColumnSet = columnSet, 
     Criteria = new FilterExpression(LogicalOperator.Or) 
}; 

並添加條件:

GetAccounts() 
.Select(a => new ConditionExpression("requiredattendees", ConditionOperator.Contains, a.Id)) 
.ForEach(c => query.Criteria.AddCondition(c)); 


a.Id is the account guid. 

我收到以下錯誤:

Cannot add attribute requiredattendees of type partylist in a condition 
System.ServiceModel.FaultException`1[[Microsoft.Xrm.Sdk.OrganizationServiceFault, Microsoft.Xrm.Sdk, Version=5.0.0.0, Culture=neutral]] 

回答

6

該代碼可用於serviceappointment,但如果我記得沒錯,預約也一樣。希望這有幫助

QueryExpression qe = new QueryExpression 
{ 
    EntityName = "serviceappointment", 
    Criteria = new FilterExpression 
    { 
     FilterOperator = LogicalOperator.And, 
     Conditions = 
     { 
      new ConditionExpression 
      { 
       AttributeName = "scheduledstart", 
       Operator = ConditionOperator.LessThan, 
       Values = 
       { 
        endTime 
       } 
      }, 
      new ConditionExpression 
      { 
       AttributeName = "scheduledend", 
       Operator = ConditionOperator.GreaterThan, 
       Values = 
       { 
        startTime 
       } 
      } 
     } 
    }, 
    LinkEntities = 
    { 
     new LinkEntity 
     { 
      LinkFromEntityName = "activitypointer", 
      LinkFromAttributeName = "activityid", 
      LinkToEntityName = "activityparty", 
      LinkToAttributeName = "activityid", 
      LinkCriteria = new FilterExpression 
      { 
       FilterOperator = LogicalOperator.And, 
       Conditions = 
       { 
        new ConditionExpression 
        { 
         AttributeName = "partyid", 
         Operator = ConditionOperator.Equal, 
         Values = 
         { 
          someEntity.id 
         } 
        } 
       } 
      } 
     } 
    } 
}; 
0
QueryExpression query = new QueryExpression(LetterEntityAttributeNames.EntityName) 
       { 
        ColumnSet = new ColumnSet(new string[] 
         { 
          LetterEntityAttributeNames.SubjectFieldName, 
          LetterEntityAttributeNames.RegardingObjectId, 
          LetterEntityAttributeNames.ToFieldName 
         }), 
        Criteria = new FilterExpression 
        { 
         FilterOperator = LogicalOperator.And, 
         Conditions = 
          { 
           new ConditionExpression 
           { 
            AttributeName = LetterEntityAttributeNames.DirectChannelTypeFieldName, 
            Operator = ConditionOperator.Equal, 
            Values = 
            { 
             DirectChannelType 
            } 
           }, 
           new ConditionExpression 
           { 
            AttributeName = LetterEntityAttributeNames.RegardingObjectId, 
            Operator = ConditionOperator.Equal, 
            Values = 
            { 
             RegardingId 
            } 
           } 
          } 
        }, 
        LinkEntities = 
         { 
          new LinkEntity 
          { 
           LinkFromEntityName = ActivityPointerEntityAttributeNames.EntityName, 
           LinkFromAttributeName = ActivityPartyAttributeNames.ActivityId, 
           LinkToEntityName = ActivityPartyAttributeNames.EntityName, 
           LinkToAttributeName = CampaignActivityAttributeNames.Id, 
           LinkCriteria = new FilterExpression 
           { 
            FilterOperator = LogicalOperator.And, 
            Conditions = 
            { 
             new ConditionExpression 
             { 
              AttributeName = ActivityPointerAttributeNames.PartyIdField, 
              Operator = ConditionOperator.Equal, 
              Values = 
              { 
               ToEntityGuid 
              } 
             } 
            } 
           } 
          } 
         } 
       };