MetadataConditionExpression Class
Updated: November 29, 2016
Applies To: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
Contains a condition expression used to filter the results of the metadata query.
Assembly: Microsoft.Xrm.Sdk (in Microsoft.Xrm.Sdk.dll)
| Name | Description | |
|---|---|---|
![]() | MetadataConditionExpression() | Initializes a new instance of the MetadataConditionExpression class. |
![]() | MetadataConditionExpression(String, MetadataConditionOperator, Object) | Initializes a new instance of the MetadataConditionExpression class. |
| Name | Description | |
|---|---|---|
![]() | ConditionOperator | Gets or sets the condition operator. |
![]() | ExtensionData | Gets or sets the structure that contains extra data. |
![]() | PropertyName | Gets or sets the name of the metadata property in the condition expression. |
![]() | Value | Gets or sets the value for the metadata property. |
| Name | Description | |
|---|---|---|
![]() | Equals(Object) | (Inherited from Object.) |
![]() | GetHashCode() | (Inherited from Object.) |
![]() | GetType() | (Inherited from Object.) |
![]() | ToString() | (Inherited from Object.) |
The following code snippet from Sample: Query metadata and detect changes shows the use of MetadataConditionExpression to set conditions for Entities and Attributes to return.
// An array SchemaName values for non-intersect, user-owned entities that should not be returned.
String[] excludedEntities = {
"WorkflowLog",
"Template",
"CustomerOpportunityRole",
"Import",
"UserQueryVisualization",
"UserEntityInstanceData",
"ImportLog",
"RecurrenceRule",
"QuoteClose",
"UserForm",
"SharePointDocumentLocation",
"Queue",
"DuplicateRule",
"OpportunityClose",
"Workflow",
"RecurringAppointmentMaster",
"CustomerRelationship",
"Annotation",
"SharePointSite",
"ImportData",
"ImportFile",
"OrderClose",
"Contract",
"BulkOperation",
"CampaignResponse",
"Connection",
"Report",
"CampaignActivity",
"UserEntityUISettings",
"IncidentResolution",
"GoalRollupQuery",
"MailMergeTemplate",
"Campaign",
"PostFollow",
"ImportMap",
"Goal",
"AsyncOperation",
"ProcessSession",
"UserQuery",
"ActivityPointer",
"List",
"ServiceAppointment"};
//A filter expression to limit entities returned to non-intersect, user-owned entities not found in the list of excluded entities.
MetadataFilterExpression EntityFilter = new MetadataFilterExpression(LogicalOperator.And);
EntityFilter.Conditions.Add(new MetadataConditionExpression("IsIntersect", MetadataConditionOperator.Equals, false));
EntityFilter.Conditions.Add(new MetadataConditionExpression("OwnershipType", MetadataConditionOperator.Equals, OwnershipTypes.UserOwned));
EntityFilter.Conditions.Add(new MetadataConditionExpression("SchemaName", MetadataConditionOperator.NotIn, excludedEntities));
MetadataConditionExpression isVisibileInMobileTrue = new MetadataConditionExpression("IsVisibleInMobile", MetadataConditionOperator.Equals, true);
EntityFilter.Conditions.Add(isVisibileInMobileTrue);
//A condition expresson to return optionset attributes MetadataConditionExpression[] optionsetAttributeTypes = new MetadataConditionExpression[] { new MetadataConditionExpression("AttributeType", MetadataConditionOperator.Equals, AttributeTypeCode.Picklist), new MetadataConditionExpression("AttributeType", MetadataConditionOperator.Equals, AttributeTypeCode.State), new MetadataConditionExpression("AttributeType", MetadataConditionOperator.Equals, AttributeTypeCode.Status), new MetadataConditionExpression("AttributeType", MetadataConditionOperator.Equals, AttributeTypeCode.Boolean) }; //A filter expression to apply the optionsetAttributeTypes condition expression MetadataFilterExpression AttributeFilter = new MetadataFilterExpression(LogicalOperator.Or); AttributeFilter.Conditions.AddRange(optionsetAttributeTypes); //A Properties expression to limit the properties to be included with attributes MetadataPropertiesExpression AttributeProperties = new MetadataPropertiesExpression() { AllProperties = false }; AttributeProperties.PropertyNames.Add("OptionSet"); AttributeProperties.PropertyNames.Add("AttributeType");
//An entity query expression to combine the filter expressions and property expressions for the query. EntityQueryExpression entityQueryExpression = new EntityQueryExpression() { Criteria = EntityFilter, Properties = EntityProperties, AttributeQuery = new AttributeQueryExpression() { Criteria = AttributeFilter, Properties = AttributeProperties }, LabelQuery = labelQuery }; //Retrieve the metadata for the query without a ClientVersionStamp RetrieveMetadataChangesResponse initialRequest = getMetadataChanges(entityQueryExpression, null, DeletedMetadataFilters.OptionSet);
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

