FindItemMetadataByUniqueIndexedFields メソッド
派生クラスでオーバーライドされると、インデックス付きフィールドの指定された値を持つ一意の項目メタデータ エントリを返します。
名前空間: Microsoft.Synchronization.MetadataStorage
アセンブリ: Microsoft.Synchronization.MetadataStorage (Microsoft.Synchronization.MetadataStorage.dll 内)
構文
'宣言
Public MustOverride Function FindItemMetadataByUniqueIndexedFields ( _
fields As IEnumerable(Of KeyValuePair(Of String, Object)) _
) As ItemMetadata
'使用
Dim instance As ReplicaMetadata
Dim fields As IEnumerable(Of KeyValuePair(Of String, Object))
Dim returnValue As ItemMetadata
returnValue = instance.FindItemMetadataByUniqueIndexedFields(fields)
public abstract ItemMetadata FindItemMetadataByUniqueIndexedFields(
IEnumerable<KeyValuePair<string, Object>> fields
)
public:
virtual ItemMetadata^ FindItemMetadataByUniqueIndexedFields(
IEnumerable<KeyValuePair<String^, Object^>>^ fields
) abstract
abstract FindItemMetadataByUniqueIndexedFields :
fields:IEnumerable<KeyValuePair<string, Object>> -> ItemMetadata
public abstract function FindItemMetadataByUniqueIndexedFields(
fields : IEnumerable<KeyValuePair<String, Object>>
) : ItemMetadata
パラメーター
- fields
型 : System.Collections.Generic. . :: . .IEnumerable< (Of < ( <'KeyValuePair< (Of < ( <'String, Object> ) > ) >> ) > ) >
検索対象項目を識別する一意のインデックス付きフィールドのセットです。これらのフィールドは、一意のインデックスを表す有効なフィールドでなければなりません。これらのフィールドは、InitializeReplicaMetadata を呼び出したときにインデックスの指定に使用した順序と同じにする必要があります。
戻り値
型 : Microsoft.Synchronization.MetadataStorage. . :: . .ItemMetadata
インデックス付きフィールドの指定された値を持つ一意の項目メタデータ エントリです。項目が存在しない場合は、nullNothingnullptrunitNULL 参照 (Visual Basic では Nothing) が返されます。
例外
例外 | 条件 |
---|---|
ObjectDisposedException | オブジェクトが破棄されているか、正しく初期化されていません。 |
ArgumentNullException | fields が null Nothing nullptr unit NULL 参照 (Visual Basic では Nothing) であるか、fields に含まれるいずれかの名前または値が null Nothing nullptr unit NULL 参照 (Visual Basic では Nothing) です。 |
ArgumentException | fields 内に長さが 0 のフィールド名があるか、fields 内に長さが 0 の文字列型の値があります。 |
NotSupportedException | fields 内にサポートされていない型のフィールドがあります。 |
MetadataFieldNotFoundException | fieldName が見つからなかったか、有効ではありません。 |
MetadataStoreInvalidOperationException | 指定したフィールドは一意のインデックスではありません。 |
説明
FieldSchema を InitializeReplicaMetadata に渡すことによってレプリカ メタデータが最初に初期化される場合は、カスタム フィールドを確立する必要があります。
IndexSchema を InitializeReplicaMetadata に渡すことによってレプリカ メタデータが最初に初期化される場合は、インデックス付きフィールドを確立し、一意としてマーク付けする必要があります。
例
次の例では、インデックス フィールドの名前と値のペアの一覧を作成し、この一覧を一意なインデックスとして使用してメタデータ ストア内の項目を検索します。
private ItemMetadata FindMetadata(Contact contact)
{
// Try to find the item by using the unique index field values of the contact. These values are
// the first name, last name, and phone number of the contact.
List<KeyValuePair<string, object>> fields = new List<KeyValuePair<string, object>>();
fields.Add(new KeyValuePair<string, object>(FirstNameField, contact.FirstName));
fields.Add(new KeyValuePair<string, object>(LastNameField, contact.LastName));
fields.Add(new KeyValuePair<string, object>(PhoneNumberField, contact.PhoneNumber));
return _ContactReplicaMetadata.FindItemMetadataByUniqueIndexedFields(fields);
}