J'essaie de générer une requête Dynamics CRM 4 afin que je puisse obtenir des événements de calendrier nommés "Event A" ou "Event B".Construction d'un champ QueryExpression où le nom est A ou B
Un QueryByAttribute ne semble pas effectuer le travail car je ne peux pas spécifier une condition où le champ appelé "event_name" = "Event A" de "event_name" = "Event B".
Lors de l'utilisation de QueryExpression, j'ai trouvé que FilterExpression s'applique à l'entité de référencement. Je ne sais pas si FilterExpression peut être utilisé sur l'entité référencée. L'exemple ci-dessous est quelque chose comme ce que je veux réaliser, bien que cela retourne un ensemble de résultats vide car il ira chercher dans l'entité appelée "my_event_response" pour un attribut "name". Il commence à sembler que j'aurai besoin de lancer plusieurs requêtes pour l'obtenir mais c'est moins efficace que si je peux tout soumettre en même temps.
ColumnSet columns = new ColumnSet();
columns.Attributes = new string[]{ "event_name", "eventid", "startdate", "city" };
ConditionExpression eventname1 = new ConditionExpression();
eventname1.AttributeName = "event_name";
eventname1.Operator = ConditionOperator.Equal;
eventname1.Values = new string[] { "Event A" };
ConditionExpression eventname2 = new ConditionExpression();
eventname2.AttributeName = "event_name";
eventname2.Operator = ConditionOperator.Equal;
eventname2.Values = new string[] { "Event B" };
FilterExpression filter = new FilterExpression();
filter.FilterOperator = LogicalOperator.Or;
filter.Conditions = new ConditionExpression[] { eventname1, eventname2 };
LinkEntity link = new LinkEntity();
link.LinkCriteria = filter;
link.LinkFromEntityName = "my_event";
link.LinkFromAttributeName = "eventid";
link.LinkToEntityName = "my_event_response";
link.LinkToAttributeName = "eventid";
QueryExpression query = new QueryExpression();
query.ColumnSet = columns;
query.EntityName = EntityName.mbs_event.ToString();
query.LinkEntities = new LinkEntity[] { link };
RetrieveMultipleRequest request = new RetrieveMultipleRequest();
request.Query = query;
return (RetrieveMultipleResponse)crmService.Execute(request);
J'apprécierais quelques conseils sur la façon d'obtenir les données dont j'ai besoin.