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:
Vários métodos dessa classe ajudam a implementar os métodos do provedor de sincronização. Como estes, por exemplo: ReplicaMetadata.GetChangeBatch pode executar a maior parte do trabalho para o método GetChangeBatch de KnowledgeSyncProvider.
GetLocalVersions pode ser chamado pelo método ProcessChangeBatch de KnowledgeSyncProvider para encontrar versões locais de itens do lote de alterações, que são requisitados pelo aplicador de alterações.
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 | |
---|---|---|
ChangeUnitMetadata | Representa os metadados associados a uma unidade de alteração contida em um item no escopo de sincronização. | |
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. | |
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. | |
FieldSchema | Contém as informações de esquema que define um campo personalizado de um item no repositório de metadados. | |
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. | |
ItemMetadata | Quando substituído, representa os metadados que estão associados a um item no escopo de sincronização. | |
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. | |
KeyUniquenessException | A exceção que é lançada quando é feita uma tentativa de salvar um item que tem uma ID inválida ou duplicada. | |
MetadataFieldNotFoundException | A exceção que é lançada quando o campo personalizado nomeado não existe. | |
MetadataStorageEngineException | A exceção que é lançada quando ocorre falha em uma operação no mecanismo de repositório de metadados. | |
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. | |
MetadataStoreException | A classe base de todas as exceções de repositório de metadados. | |
MetadataStoreInvalidOperationException | A exceção que é lançada quando a chamada de um método é inválida para o estado atual do objeto. | |
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. | |
MultipleReplicasInStoreException | A exceção lançada quando GetSingleReplicaMetadata é chamado e o repositório de metadados contém metadados de mais de uma réplica. | |
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. | |
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. | |
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. | |
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. | |
SqlMetadataStore | Representa um repositório de metadados que é implementado com o uso de um banco de dados leve para armazenar os metadados. | |
SqlSyncFieldValue | Representa o valor de um campo personalizado de um item. | |
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. | |
SyncFieldValue | Quando substituído em uma classe derivada, representa o valor de um campo personalizado de um item. | |
SyncMetadataStoreSerializer | Quando substituído por uma classe derivada, serializa e desserializa os metadados para uma réplica. | |
UpgradeStartEventArgs | Fornece dados para o evento MetadataStoreUpgradeStart. | |
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 | |
---|---|---|
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 | |
---|---|---|
ReplicaMetadata.ItemFilterCallback | Representa o método que determinará se uma alteração de item deve ser incluída em um lote de alterações. |