DeletedMetadataFilters 열거형
An enumeration that specifies the type of deleted metadata to retrieve.
네임스페이스: Microsoft.Xrm.Sdk.Metadata.Query
어셈블리: Microsoft.Xrm.Sdk(Microsoft.Xrm.Sdk.dll에 있음)
구문
‘선언
<FlagsAttribute> _
<DataContractAttribute(Name:="DeletedMetadataFilters", Namespace:="https://schemas.microsoft.com/xrm/2011/Metadata/Query")> _
Public Enumeration DeletedMetadataFilters
[FlagsAttribute]
[DataContractAttribute(Name="DeletedMetadataFilters", Namespace="https://schemas.microsoft.com/xrm/2011/Metadata/Query")]
public enum DeletedMetadataFilters
구성원
구성원 이름 | 설명 |
---|---|
All | All deleted metadata. Value = 31. |
Attribute | Deleted Attribute metadata. Value = 2. |
Default | The value used if not set. Equals Entity |
Entity | Deleted Entity metadata. Value = 1. |
Label | Deleted Label metadata. Value = 8. |
OptionSet | Deleted OptionSet metadata. Value = 16. |
Relationship | Deleted Relationship metadata. Value = 4. |
설명
The DeletedMetadataFilters enumeration can also be used as a key to access a subset of deleted metadata included in a DeletedMetadataCollection. The following code snippets show usage of DeletedMetadataFilters in Sample: Query Metadata and Detect Changes.
protected RetrieveMetadataChangesResponse getMetadataChanges(
EntityQueryExpression entityQueryExpression,
String clientVersionStamp,
DeletedMetadataFilters deletedMetadataFilter)
{
RetrieveMetadataChangesRequest retrieveMetadataChangesRequest = new RetrieveMetadataChangesRequest()
{
Query = entityQueryExpression,
ClientVersionStamp = clientVersionStamp,
DeletedMetadataFilters = deletedMetadataFilter
};
return (RetrieveMetadataChangesResponse)_service.Execute(retrieveMetadataChangesRequest);
}
...
protected String updateOptionLabelList(EntityQueryExpression entityQueryExpression, String clientVersionStamp)
{
//Retrieve metadata changes and add them to the cache
RetrieveMetadataChangesResponse updateResponse;
try
{
updateResponse = getMetadataChanges(entityQueryExpression, clientVersionStamp, DeletedMetadataFilters.OptionSet);
addOptionLabelsToCache(updateResponse.EntityMetadata, true);
removeOptionLabelsFromCache(updateResponse.DeletedMetadata, true);
}
catch (FaultException<Microsoft.Xrm.Sdk.OrganizationServiceFault> ex)
{
// Check for ErrorCodes.ExpiredVersionStamp (0x80044352)
// Will occur when the timestamp exceeds the Organization.ExpireSubscriptionsInDays value, which is 90 by default.
if (ex.Detail.ErrorCode == unchecked((int)0x80044352))
{
//reinitialize cache
_optionLabelList.Clear();
updateResponse = getMetadataChanges(entityQueryExpression, null, DeletedMetadataFilters.OptionSet);
//Add them to the cache and display the changes
addOptionLabelsToCache(updateResponse.EntityMetadata, true);
}
else
{
throw ex;
}
}
return updateResponse.ServerVersionStamp;
}
...
protected void removeOptionLabelsFromCache(DeletedMetadataCollection DeletedMetadata, Boolean showChanges)
{
List<OptionSetOption> optionSetOptionsToRemove = new List<OptionSetOption>();
if (DeletedMetadata.Keys.Contains(DeletedMetadataFilters.OptionSet))
{
DataCollection<Guid> optionsetmetadataids = (DataCollection<Guid>)DeletedMetadata[DeletedMetadataFilters.OptionSet];
foreach (Guid metadataid in optionsetmetadataids)
{
foreach (OptionSetOption oso in _optionLabelList)
{
if (metadataid == oso.optionsetId)
{
optionSetOptionsToRemove.Add(oso);
}
}
}
}
foreach (OptionSetOption option in optionSetOptionsToRemove)
{
_optionLabelList.Remove(option);
}
if (showChanges)
{
if (optionSetOptionsToRemove.Count > 0)
{
Console.WriteLine("{0} Option Labels removed", optionSetOptionsToRemove.Count);
Console.WriteLine("{0} Total Option Labels currently cached", _optionLabelList.Count);
Console.WriteLine("");
}
else
{
Console.WriteLine("No Option Labels removed.");
Console.WriteLine("");
}
}
}
플랫폼
Development Platforms
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.
Target Platforms
Windows 98,Windows 2000,Windows 2000 Server,Windows CE,Windows Server 2008,Windows 98 Second Edition,Pocket PC,스마트 폰,Windows Server 2003,Windows XP Professional,Windows Server 2008,Windows Server 2012,Windows 7,Windows 8,Windows 8.1
Change History
참고 항목
참조
Microsoft.Xrm.Sdk.Metadata.Query 네임스페이스
기타 리소스
Query and Capture Changes to Metadata
Sample: Query Metadata and Detect Changes
Send comments about this topic to Microsoft.
© 2015 Microsoft. All rights reserved.