Del via


Brug klassen FilterExpression

 

Udgivet: januar 2017

Gælder for: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

I Microsoft Dynamics 365 og Microsoft Dynamics 365 (online) kan du bruge klassen FilterExpression til at opbygge en forespørgsel, der udtrykker flere betingelser. Du kan f.eks. oprette et forespørgselsudtryk, som svarer til et SQL-udsagn, f.eks. ([FirstName] = 'Joe' OR [FirstName] = 'John') AND [City] = 'Redmond'.

Følgende tabel viser de egenskaber, der er tilgængelige i klassen FilterExpression.

Egenskab

Beskrivelse

Conditions

Henter eller angiver betingelsesudtryk, som omfatter attributter, betingelsesoperatorer og attributværdier.

FilterOperator

Henter eller angiver logiske AND/OR-filteroperatorer. Dette angives ved hjælp af LogicalOperator-optællingen.

Filters

Henter eller angiver et hierarki af betingelsesudtryk og logiske filterudtryk, som filtrerer resultaterne af forespørgslen.

IsQuickFindFilter

Henter eller angiver en værdi, som angiver udtrykket er del af en hurtig søgning.

Klassen FilterExpression omfatter også flere hjælpemetoder, som gør det nemmere at oprette forespørgsler.AddCondition-metoden tilføjer en ConditionExpression til egenskaben Conditions for FilterExpression, så den mængde kode, der skal bruges til at konstruere betingelsesudtrykket, reduceres.AddFilter-metoden tilføjer et nyt filter til egenskaben Filters for klassen FilterExpression.

Dette emne indeholder

Eksempel på filterudtryk

Om IsQuickFindFilter-egenskaben

Eksempel på filterudtryk

Følgende kodeeksempel viser, hvordan du bruger klassen FilterExpression.

QueryExpression query = new QueryExpression("contact"); 
query.ColumnSet.AddColumns("firstname", "lastname", "address1_city"); 

query.Criteria = new FilterExpression(); 
query.Criteria.AddCondition("address1_city", ConditionOperator.Equal, "Redmond"); 

FilterExpression childFilter = query.Criteria.AddFilter(LogicalOperator.Or); 
childFilter.AddCondition("lastname", ConditionOperator.Equal, "Tharpe"); 
childFilter.AddCondition("lastname", ConditionOperator.Equal, "Brown"); 

// Pass query to service proxy 
EntityCollection results = _serviceProxy.RetrieveMultiple(query); 
Console.WriteLine(); 
Console.WriteLine("Query using QE with multiple conditions and filters"); 
Console.WriteLine("---------------------------------------"); 

// Print results 
foreach (var a in results.Entities) 
{ 
Console.WriteLine("Name: {0} {1}", a.GetAttributeValue<string>("firstname"), a.GetAttributeValue<string>("lastname")); 
Console.WriteLine("City: {0}", a.GetAttributeValue<string>("address1_city")); 
} 
Console.WriteLine("---------------------------------------");

Om IsQuickFindFilter-egenskaben

Du kan bruge egenskaben FilterExpression.IsQuickFindFilter, som er analog til attributten isquickfindfields, som eksisterer på noden filter i Fetch XML. Når en Fetch-forespørgsel gemmes, gemmes dette i SavedQuery- og UserQuery-objekternes IsQuickFind-egenskaber. Egenskaben IsQuickFindFilter blev tilføjet for at give konsistens mellem forespørgselsudtryk og Fetch XML-forespørgsler.

Der gælder følgende regler for egenskaben IsQuickFindFilter:

  • Dette felt kan kun indstilles til true for filterudtryk med en logisk operatør af typen LogicalOperator.Or. Hvis feltet bliver indstillet for udtryk med en logisk operatør af typen LogicalOperator.And, ignoreres egenskaben IsQuickFindFilter.

  • Der kan kun angives ét filterudtryk i et filterudtrykshierarki med IsQuickFindFilter = sand. Hvis der findes mere end ét, opstår der er en undtagelse.

  • Hvis et filterudtryk har IsQuickFindFilter angivet til sand, kan det ikke have egenskaber for underordnet filterudtryk, det kan kun have ConditionExpression-egenskaber. Hvis du tilføjer en underordnet filterudtryk, opstår der en undtagelse.

  • Alle betingelsesudtryk med relation til et filterudtryk med IsQuickFindFilter angivet til sand skal være betingelser med en enkelt værdi, som ikke er null. Da en betingelse består af attribut, operatør og værdi, er det med andre ord kun betingelser, hvor værdiegenskaben er en enkelt værdi, som ikke er null, der understøttes. Desuden er de eneste betingelsesoperatorer, som understøttes på disse betingelsesudtryk, dem, som fungerer med en enkelt værdi, der ikke er null. Hvis en null-værdi eller flere værdier registreres, opstår der en undtagelse.

Se også

FilterExpression
Oprette forespørgsler med QueryExpression
Bruge en venstre ydre joinforbindelse i QueryExpression til forespørgsel til poster, der er "ikke i"
Brug klassen ConditionExpression

Microsoft Dynamics 365

© 2017 Microsoft. Alle rettigheder forbeholdes. Ophavsret