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 时用于指定索引的顺序相同。

返回值

索引字段具有相应指定值的唯一项元数据条目。不存在这样的项时,返回一个 null 引用(在 Visual Basic 中为 Nothing)。

异常

异常类型 条件

ObjectDisposedException

对象已释放或未正确初始化。

ArgumentNullException

fields 为 null 引用(在 Visual Basic 中为 Nothing),或 fields 中的任何名称或值为 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);
}

请参阅

参考

ReplicaMetadata 类
ReplicaMetadata 成员
Microsoft.Synchronization.MetadataStorage 命名空间