QueryExpression Class
Updated: November 29, 2016
Applies To: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
Contains a complex query expressed in a hierarchy of expressions.
Assembly: Microsoft.Xrm.Sdk (in Microsoft.Xrm.Sdk.dll)
| Name | Description | |
|---|---|---|
![]() | QueryExpression() | Initializes a new instance of the QueryExpression class. |
![]() | QueryExpression(String) | Initializes a new instance of the QueryExpression class setting the entity name. |
| Name | Description | |
|---|---|---|
![]() | ColumnSet | Gets or sets the columns to include. |
![]() | Criteria | Gets or sets the complex condition and logical filter expressions that filter the results of the query. |
![]() | Distinct | Gets or sets whether the results of the query contain duplicate entity instances. |
![]() | EntityName | Gets or sets the logical name of the entity. |
![]() | ExtensionData | Gets or sets the structure that contains extra data.(Inherited from QueryBase.) |
![]() | LinkEntities | Gets a collection of the links between multiple entity types. |
![]() | NoLock | Gets or sets a value that indicates that no shared locks are issued against the data that would prohibit other transactions from modifying the data in the records returned from the query. |
![]() | Orders | Gets the order in which the entity instances are returned from the query. |
![]() | PageInfo | Gets or sets the number of pages and the number of entity instances per page returned from the query. |
![]() | TopCount | Gets or sets the number of rows to be returned. |
| Name | Description | |
|---|---|---|
![]() | AddLink(String, String, String) | Adds the specified link to the query expression setting the entity name to link to, the attribute name to link from and the attribute name to link to. |
![]() | AddLink(String, String, String, JoinOperator) | Adds the specified link to the query expression setting the entity name to link to, the attribute name to link from and the attribute name to link to. |
![]() | AddOrder(String, OrderType) | Adds the specified order expression to the query expression. |
![]() | Equals(Object) | (Inherited from Object.) |
![]() | GetHashCode() | (Inherited from Object.) |
![]() | GetType() | (Inherited from Object.) |
![]() | ToString() | (Inherited from Object.) |
QueryExpression provides an object model to construct a query. Queries can also be created using FetchXML, a proprietary XML based query language. You can convert queries between FetchXML and QueryExpression using FetchXmlToQueryExpressionRequest and QueryExpressionToFetchXmlRequest messages. More information: Sample: Convert queries between Fetch and QueryExpression.
// Build the following SQL query using QueryExpression: // // SELECT contact.fullname, contact.address1_telephone1 // FROM contact // LEFT OUTER JOIN account // ON contact.parentcustomerid = account.accountid // AND // account.name = 'Litware, Inc.' // WHERE (contact.address1_stateorprovince = 'WA' // AND // contact.address1_city in ('Redmond', 'Bellevue', 'Kirkland', 'Seattle') // AND // contact.address1_telephone1 like '(206)%' // OR // contact.address1_telephone1 like '(425)%' // AND // DATEDIFF(DAY, contact.createdon, GETDATE()) > 0 // AND // DATEDIFF(DAY, contact.createdon, GETDATE()) < 30 // AND // contact.emailaddress1 Not NULL // ) QueryExpression query = new QueryExpression() { Distinct = false, EntityName = Contact.EntityLogicalName, ColumnSet = new ColumnSet("fullname", "address1_telephone1"), LinkEntities = { new LinkEntity { JoinOperator = JoinOperator.LeftOuter, LinkFromAttributeName = "parentcustomerid", LinkFromEntityName = Contact.EntityLogicalName, LinkToAttributeName = "accountid", LinkToEntityName = Account.EntityLogicalName, LinkCriteria = { Conditions = { new ConditionExpression("name", ConditionOperator.Equal, "Litware, Inc.") } } } }, Criteria = { Filters = { new FilterExpression { FilterOperator = LogicalOperator.And, Conditions = { new ConditionExpression("address1_stateorprovince", ConditionOperator.Equal, "WA"), new ConditionExpression("address1_city", ConditionOperator.In, new String[] {"Redmond", "Bellevue" , "Kirkland", "Seattle"}), new ConditionExpression("createdon", ConditionOperator.LastXDays, 30), new ConditionExpression("emailaddress1", ConditionOperator.NotNull) }, }, new FilterExpression { FilterOperator = LogicalOperator.Or, Conditions = { new ConditionExpression("address1_telephone1", ConditionOperator.Like, "(206)%"), new ConditionExpression("address1_telephone1", ConditionOperator.Like, "(425)%") } } } } }; DataCollection<Entity> entityCollection = _service.RetrieveMultiple(query).Entities; // Display the results. Console.WriteLine("List all contacts matching specified parameters"); Console.WriteLine("==============================================="); foreach (Contact contact in entityCollection) { Console.WriteLine("Contact ID: {0}", contact.Id); Console.WriteLine("Contact Name: {0}", contact.FullName); Console.WriteLine("Contact Phone: {0}", contact.Address1_Telephone1); } Console.WriteLine("<End of Listing>"); Console.WriteLine();
Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Microsoft Dynamics 365
© 2016 Microsoft. All rights reserved. Copyright

