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.

Inicializando os metadados

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.

Encapsulando metadados para réplicas

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.

Encapsulando metadados para itens

É 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
classe pública ChangeUnitMetadata Representa os metadados associados a uma unidade de alteração contida em um item no escopo de sincronização.
classe pública 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.
classe pública 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.
classe pública FieldSchema Contém as informações de esquema que define um campo personalizado de um item no repositório de metadados.
classe pública 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.
classe pública ItemMetadata Quando substituído, representa os metadados que estão associados a um item no escopo de sincronização.
classe pública 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.
classe pública KeyUniquenessException A exceção que é lançada quando é feita uma tentativa de salvar um item que tem uma ID inválida ou duplicada.
classe pública MetadataFieldNotFoundException A exceção que é lançada quando o campo personalizado nomeado não existe.
classe pública MetadataStorageEngineException A exceção que é lançada quando ocorre falha em uma operação no mecanismo de repositório de metadados.
classe pública 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.
classe pública MetadataStoreException A classe base de todas as exceções de repositório de metadados.
classe pública MetadataStoreInvalidOperationException A exceção que é lançada quando a chamada de um método é inválida para o estado atual do objeto.
classe pública 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.
classe pública MultipleReplicasInStoreException A exceção lançada quando GetSingleReplicaMetadata é chamado e o repositório de metadados contém metadados de mais de uma réplica.
classe pública 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.
classe pública 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.
classe pública 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.
classe pública 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.
classe pública SqlMetadataStore Representa um repositório de metadados que é implementado com o uso de um banco de dados leve para armazenar os metadados.
classe pública SqlSyncFieldValue Representa o valor de um campo personalizado de um item.
classe pública 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.
classe pública SyncFieldValue Quando substituído em uma classe derivada, representa o valor de um campo personalizado de um item.
classe pública SyncMetadataStoreSerializer Quando substituído por uma classe derivada, serializa e desserializa os metadados para uma réplica.
classe pública UpgradeStartEventArgs Fornece dados para o evento MetadataStoreUpgradeStart.
classe pública 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
Interface pública 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.

Delegações

  Delegação Descrição
Delegação pública ReplicaMetadata. . :: . .ItemFilterCallback Representa o método que determinará se uma alteração de item deve ser incluída em um lote de alterações.