Метод ReplicaMetadata.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
public abstract ItemMetadata FindItemMetadataByUniqueIndexedFields (
IEnumerable<KeyValuePair<String,Object>> fields
)
public abstract function FindItemMetadataByUniqueIndexedFields (
fields : IEnumerable<KeyValuePair<String,Object>>
) : ItemMetadata
Параметры
- fields
Набор уникальных индексированных полей, идентифицирующих элементы, которые необходимо найти. Поля должны быть допустимыми полями, представляющими уникальный индекс. Они должны быть расположены в том же порядке, который использовался для указания индекса при вызове процедуры InitializeReplicaMetadata.
Возвращаемое значение
Уникальная запись метаданных, имеющая заданные значения индексированных полей. Если элемент не существует, возвращается значение пустая ссылка (Nothing в Visual Basic).
Исключения
Тип исключения | Условие |
---|---|
Объект удален или неправильно инициализирован. |
|
Параметр fields равен пустая ссылка (Nothing в Visual Basic), либо имя или значение в коллекции fields равно пустая ссылка (Nothing в Visual Basic). |
|
Имя поля в списке fields имеет нулевую длину, либо значение в списке fields является строкой нулевой длины. |
|
Поле в списке fields имеет неподдерживаемый тип. |
|
Поле fieldName не найдено или неверно. |
|
Указанное поле не является уникальным индексом. |
Замечания
Настраиваемые поля необходимо определить при первой инициализации метаданных реплики. Для этого нужно передать значение 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);
}
См. также
Справочник
Класс ReplicaMetadata
Элементы ReplicaMetadata
Пространство имен Microsoft.Synchronization.MetadataStorage