Compartilhar via


Namespace Microsoft.Synchronization.MetadataStorage

O serviço de armazenamento de metadados fornece suporte para armazenar e manipular metadados de sincronização.

O serviço de armazenamento de metadados define muitas de suas classes como abstratas, de forma que gravadores de serviço de armazenamento possam implementar um conjunto personalizado de classes para armazenar metadados em qualquer tipo de repositório de dados.

O serviço de armazenamento de metadados também fornece uma implementação de classes que usa um banco de dados leve para armazenar metadados da sincronização em um único arquivo de banco de dados de um sistema de arquivos.

A classe principal de todos os repositório de metadados é MetadataStore. Essa classe base abstrata contém métodos para inicializar e obter metadados de réplicas no repositório de metadados, e para iniciar e interromper transações no banco de dados. As classes que substituem essa classe base provavelmente fornecerão métodos para criar e abrir repositórios de metadados, como SqlMetadataStore. Essa classe contém métodos para criar e abrir um repositório de metadados.

Os metadados da réplica são inicializados no repositório de metadados usando InitializeReplicaMetadata. O parâmetro FieldSchema para este método permite a criação de um conjunto de campos personalizados. Esses campos podem ser usados para armazenar metadados adicionais para itens no repositório de metadados. O parâmetro IndexSchema permite que conjuntos de campos sejam definidos como índices. Eles podem ser usados para localizar itens, de forma eficiente, no repositório de metadados.

A classe ReplicaMetadata encapsula todos os metadados para uma réplica específica. É possível acessar os metadados de réplicas usando membros como GetKnowledge e ReplicaId:

ReplicaMetadata também contém DeleteDetector. Um provedor pode usar o objeto contido nesta propriedade para detectar quais itens foram excluídos do repositório de itens e devem ser marcado como excluídos no repositório de metadados.

É possível localizar metadados de itens no repositório de metadados usando métodos ReplicaMetadata para pesquisar por ID de item ou campos indexados, como FindItemMetadataById ou FindItemMetadataByIndexedFields. A classe ItemMetadata encapsula todos os metadados para um item específico. Esta classe contém metadados da sincronização padrão, como ChangeVersion, CreationVersion, GlobalId e IsDeleted. Essa classe também contém vários métodos que podem ser usados para acessar qualquer campo personalizado que foi definido quando os metadados da réplica foram inicializados.

Classes

  Classe Descrição
Public class ChangeUnitMetadata Representa os metadados associados a uma unidade de alteração contida em um item no escopo de sincronização.
Public class DeleteDetector Quando implementado por uma classe derivada, DeleteDetector determina quais itens foram excluídos de uma réplica. Esses itens devem ser marcados como excluídos no repositório de metadados.
Public class ExplicitTransactionRequiredException A exceção que é lançada quando um método chamado requer que uma transação explícita tenha sido iniciada no repositório de metadados.
Public class FieldSchema Contém as informações de esquema que define um campo personalizado de um item no repositório de metadados.
Public class IndexSchema Representa um índice de uma ou várias colunas que pode ser usado para localizar itens no repositório de metadados com mais eficiência.
Public class ItemMetadata Quando substituído, representa os metadados que estão associados a um item no escopo de sincronização.
Public class ItemMetadataNotFoundException A exceção que é lançada quando um item que tem a ID ou o valor do campo personalizado especificado não puder ser localizado no repositório de metadados.
Public class KeyUniquenessException A exceção que é lançada quando é feita uma tentativa de salvar um item que tem uma ID inválida ou duplicada.
Public class MetadataFieldNotFoundException A exceção que é lançada quando o campo personalizado nomeado não existe.
Public class MetadataStorageEngineException A exceção que é lançada quando ocorre falha em uma operação no mecanismo de repositório de metadados.
Public class MetadataStore Quando substituído, representa um repositório de metadados e fornece métodos para obter um objeto de metadados da réplica. O objeto de metadados da réplica é usado para acessar os metadados de uma réplica específica. Esta é a classe base abstrata de todos os repositórios de metadados que usam a API do serviço de armazenamento de metadados.
Public class MetadataStoreException A classe base de todas as exceções de repositório de metadados.
Public class MetadataStoreInvalidOperationException A exceção que é lançada quando a chamada de um método é inválida para o estado atual do objeto.
Public class MetadataStoreProviderVersionMismatchException A exceção que é lançada quando DeserializeReplicaMetadata é chamado e a versão esperada de compatibilidade do provedor especificada não corresponde à versão do provedor armazenada nos metadados serializados.
Public class MultipleReplicasInStoreException A exceção lançada quando GetSingleReplicaMetadata é chamado e o repositório de metadados contém metadados de mais de uma réplica.
Public class ReplicaMetadata Quando substituído, fornece acesso aos metadados da réplica e do item no repositório de metadados. ReplicaMetadata também fornece serviços para detecção de exclusão e auxiliares para a implementação de métodos do provedor de sincronização.
Public class ReplicaMetadataAlreadyExistsException A exceção que é lançada quando é feita uma tentativa de criar metadados da réplica novos em um repositório de metadados quando os metadados daquela réplica já existem no repositório de metadados.
Public class ReplicaMetadataInUseException A exceção que é lançada quando é feita uma tentativa de criar mais de uma instância ReplicaMetadata ativa para uma ID de réplica específica.
Public class ReplicaMetadataNotFoundException A exceção que é lançada quando não existem metadados da réplica no repositório de metadados para a ID de réplica especificada.
Public class SqlMetadataStore Representa um repositório de metadados que é implementado com o uso de um banco de dados leve para armazenar os metadados.
Public class SqlSyncFieldValue Representa o valor de um campo personalizado de um item.
Public class SqlSyncMetadataStoreSerializer Serializa e desserializa metadados para uma réplica entre um formato de arquivo de metadados canônico e formatos de repositório do serviço de armazenamento de metadados específicos da versão.
Public class SyncFieldValue Quando substituído em uma classe derivada, representa o valor de um campo personalizado de um item.
Public class SyncMetadataStoreSerializer Quando substituído por uma classe derivada, serializa e desserializa os metadados para uma réplica.
Public class UpgradeStartEventArgs Fornece dados para o evento MetadataStoreUpgradeStart.
Public class VersionNotSupportedException A exceção que é lançada quando é feita uma tentativa de obter metadados da réplica de um repositório de metadados, mas a versão dos metadados não é aceita pela implementação do repositório de metadados.

Interfaces

  Interface Descrição
Public interface IProviderUpgradeCallback Quando implementado por uma classe derivada, representa métodos que o Sync Framework pode chamar para notificar um provedor sobre os eventos que ocorrem durante uma atualização do repositório de metadados, a qual foi iniciada porque a versão do provedor foi alterada.

Representantes

  Representante Descrição
Public delegate ReplicaMetadata.ItemFilterCallback Representa o método que determinará se uma alteração de item deve ser incluída em um lote de alterações.