2011-12-29 94 views
1

我正试图在动态crm 4.0中编写一个插件。以下是我的提取查询哪些工作正常。我在fetchxml Builder上测试过。但是当我试图转换为QueryExpression时,它并没有回应任何结果。如何为以下查询编写QueryExpression?

<fetch mapping='logical'> 
    <entity name='new_involvedperson'> 
     <attribute name='new_ageattimeofincident'/> 
     <filter type='and'> 
      <condition attribute='new_personid' operator='eq' alias='new_InvolvedPersonID' value='{70B1E0F8-9205-E111-9C76-005056A44AF5}'/> 
      <condition attribute='new_roletype' operator='eq' value='1'/> 
     </filter> 
     <link-entity name='new_person' from='new_personid' to='new_personnameid'> 
      <attribute name='new_firstname'/> 
      <attribute name='new_lastname'/> 
      <attribute name='new_dateofbirth'/> 
     </link-entity> 
    </entity> 
</fetch> 

我想写下面的代码,但它始终返回0记录

ColumnSet cols = new ColumnSet(); 

// Set the properties of the column set. 
cols.Attributes.Add("new_ageattimeofincident"); 

// Create the condition expression. 
ConditionExpression condition = new ConditionExpression(); 
condition.AttributeName = "new_personid"; 
condition.Operator = ConditionOperator.Equal; 
condition.Values = new object[1]; 
condition.Values[0] = incidentId; 

//ConditionExpression condition1 = new ConditionExpression(); 
//condition1.AttributeName = "new_roletype"; 
//condition1.Operator = ConditionOperator.Equal; 
//condition1.Values = new object[1]; 
//condition1.Values[0] = roleType; 


// Build the filter based on the condition. 
FilterExpression filter = new FilterExpression(); 
filter.FilterOperator = LogicalOperator.And; 
filter.Conditions.Add(condition); 
//filter.Conditions.Add(condition1); 

// Create a LinkEntity to link the owner's information to the account. 
LinkEntity link = new LinkEntity(); 
link.LinkCriteria = filter; 
link.LinkToEntityName = "new_person"; 
link.LinkToAttributeName = "new_personid"; 
link.LinkFromEntityName = "new_involvedperson"; 
link.LinkFromAttributeName = "new_personnameid"; 

// Create the query. 
QueryExpression query = new QueryExpression(); 
query.EntityName = "new_involvedperson"; 
query.ColumnSet = cols; 
query.LinkEntities.Add(link); 

// Create the request object. 
RetrieveMultipleRequest retrieve = new RetrieveMultipleRequest(); 
retrieve.Query = query; 
retrieve.ReturnDynamicEntities = true; 

// Execute the request. 
RetrieveMultipleResponse retrieved2 = (RetrieveMultipleResponse)service.Execute(retrieve); 

return retrieved2.BusinessEntityCollection.BusinessEntities; 

回答

0

新AllColumns尝试它(),看看是否可行。我似乎记得一个令人沮丧的问题,如果指定的列不包含数据,则不返回任何记录。