次の方法で共有


SimpleSyncProviderFilterOptions 列挙体

フィルターされた同期で使用できるオプションを表します。

名前空間: Microsoft.Synchronization.SimpleProviders
アセンブリ: Microsoft.Synchronization.SimpleProviders (microsoft.synchronization.simpleproviders.dll 内)

構文

'宣言
<FlagsAttribute> _
Public Enumeration SimpleSyncProviderFilterOptions
'使用
Dim instance As SimpleSyncProviderFilterOptions
[FlagsAttribute] 
public enum SimpleSyncProviderFilterOptions
[FlagsAttribute] 
public enum class SimpleSyncProviderFilterOptions
/** @attribute FlagsAttribute() */ 
public enum SimpleSyncProviderFilterOptions
FlagsAttribute 
public enum SimpleSyncProviderFilterOptions

メンバー

  メンバー名 説明
AlwaysIncludeItemsKnownToDestination 項目がフィルターに一致しない場合でも、同期先で認識されるすべての項目を同期先に反映します。 
None フィルターに適合する項目のみを同期先に反映します。 

解説

同期先レプリカに同期元レプリカのすべてのデータが必要とは限りません。データのサブセットだけでよい場合もあります。たとえば、販売担当者にとっては、普段自分が取り扱っている商品についてのみ詳しい情報が入手できれば十分です。簡易プロバイダーに IFilteredSimpleSyncProvider を実装すると、レプリカのデータをフィルター選択できるようになります。詳細については、「簡易プロバイダーのデータのフィルター選択」を参照してください。

次のコード例では、まず、フィルター オプションとして None を指定します。これは、同期先が把握している項目も除外されることを意味します。コード例には、さらに、IsItemInFilterScope メソッドが実装されています。このメソッドで、項目フィールドのいずれかの値に基づいて項目を除外します。フィルター定義の後は、UseFilterThisSession メソッドが実装されています。これで、アプリケーションから、フィルター選択を使用するかどうかをセッション単位で指定できるようになります。

SimpleSyncProviderFilterOptions IFilteredSimpleSyncProvider.FilterOptions
{
    get
    {
        return SimpleSyncProviderFilterOptions.None;
    }
}

bool IFilteredSimpleSyncProvider.IsItemInFilterScope(ItemFieldDictionary KeyAndVersion)
{
    ulong itemId = (ulong)KeyAndVersion[1].Value;
    ItemData itemData = _store.Get(itemId);
    if (itemData["data"] == "3333")
    {
        return false;
    }

    return true;
}

bool IFilteredSimpleSyncProvider.UseFilterThisSession
{
    get
    {
        // Indicate whether a filter has been requested and agreed upon for this session.
        return ("" != _filter);
    }
}
Private ReadOnly Property FilterOptions() As SimpleSyncProviderFilterOptions Implements IFilteredSimpleSyncProvider.FilterOptions
    Get
        Return SimpleSyncProviderFilterOptions.None
    End Get
End Property

Private Function IsItemInFilterScope(ByVal KeyAndVersion As ItemFieldDictionary) As Boolean Implements IFilteredSimpleSyncProvider.IsItemInFilterScope
    Dim itemId As ULong = KeyAndVersion(1).Value
    Dim data As ItemData = _store.Get(itemId)
    If data("data") Is "3333" Then
        Return False
    End If

    Return True
End Function

Private ReadOnly Property UseFilterThisSession() As Boolean Implements IFilteredSimpleSyncProvider.UseFilterThisSession
    Get
        ' Indicate whether a filter has been requested and agreed upon for this session.
        Return "" Is _filter
    End Get
End Property

参照

リファレンス

Microsoft.Synchronization.SimpleProviders 名前空間