Microsoft.Synchronization.MetadataStorage 命名空间
元数据存储服务支持存储和处理同步元数据。
元数据存储服务将其很多类定义为抽象类,以便存储服务编写器能够实现自定义类组,以在任何类型的数据存储中存储元数据。
元数据存储服务还提供一些类的实现,这些类使用轻型数据库在文件系统的单个数据库文件中存储同步元数据。
初始化元数据
所有元数据存储区的主类为 MetadataStore。此抽象基类包含初始化和获取元数据存储区中的副本元数据以及启动和停止数据库事务的方法。重写此基类的类将可能会提供创建和打开元数据存储区(如 SqlMetadataStore)的方法。此类包含创建和打开元数据存储区的方法。
副本元数据是通过使用 InitializeReplicaMetadata 在元数据存储区中初始化的。使用此方法的 FieldSchema 参数,可以创建一组自定义字段。这些字段可用于在元数据存储区中存储项的其他元数据。使用 IndexSchema 参数可将字段组定义为索引。这些字段可用于有效地查找元数据存储区中的项。
封装副本的元数据
ReplicaMetadata 类封装某特定副本的所有元数据。使用类似 GetKnowledge 和 ReplicaId 的成员可访问副本元数据:
此类中的多个方法可帮助实现同步提供程序方法,例如,下面的 ReplicaMetadata..::..GetChangeBatch 可执行 KnowledgeSyncProvider 的 GetChangeBatch 方法的大部分任务。
GetLocalVersions 可从 KnowledgeSyncProvider 的 ProcessChangeBatch 方法调用,以查找变更应用方所需的本地版本的变更批项。
ReplicaMetadata 还包含 DeleteDetector。提供程序可使用此属性中包含的对象检来测哪些项已从项存储区中删除,并且应在元数据存储区中标记为已删除。
封装项的元数据
可以通过下面的方法在元数据存储区中找到项元数据:使用 ReplicaMetadata 方法按项 ID 或索引字段(如 FindItemMetadataById 或 FindItemMetadataByIndexedFields)进行搜索。ItemMetadata 类可封装特定项的所有元数据。此类包含标准的同步元数据,如 ChangeVersion、CreationVersion、GlobalId 和 IsDeleted。此类还包含多个方法,这些方法可用于访问初始化副本元数据时定义的任何自定义字段。
类
类 | 说明 | |
---|---|---|
ChangeUnitMetadata | 表示与包含在同步作用域中的项中的变更单位相关联的元数据。 | |
DeleteDetector | 通过派生类实现时,DeleteDetector 确定从副本中删除的项。这些项应在元数据存储区中标记为已删除。 | |
ExplicitTransactionRequiredException | 调用要求已对元数据存储区启动显式事务的方法时引发的异常。 | |
FieldSchema | 包含为元数据存储区中的项定义自定义字段的架构信息。 | |
IndexSchema | 表示一个单列或多列索引,该索引可用于更有效地查找元数据存储区中的项。 | |
ItemMetadata | 重写时,表示与同步作用域中的项相关联的元数据。 | |
ItemMetadataNotFoundException | 在元数据存储区中找不到具有指定的 ID 或自定义字段值的项时引发的异常。 | |
KeyUniquenessException | 尝试保存其 ID 无效或重复的项时引发的异常。 | |
MetadataFieldNotFoundException | 命名的自定义字段不存在时所引发的异常。 | |
MetadataStorageEngineException | 对元数据存储引擎执行操作失败时引发的异常。 | |
MetadataStore | 重写时,表示元数据存储区,并提供获取副本元数据对象的方法。该副本元数据对象用于访问某特定副本的元数据。这是使用元数据存储服务 API 的所有元数据存储区的抽象基类。 | |
MetadataStoreException | 所有元数据存储异常的基类。 | |
MetadataStoreInvalidOperationException | 方法调用对当前状态的对象无效时引发的异常。 | |
MetadataStoreProviderVersionMismatchException | 在调用 DeserializeReplicaMetadata 且指定的所需提供程序兼容性版本与序列化元数据中存储的提供程序版本不一致时引发的异常。 | |
MultipleReplicasInStoreException | 在调用 GetSingleReplicaMetadata 且元数据存储区包含多个副本的元数据时引发的异常。 | |
ReplicaMetadata | 重写时,提供对元数据存储区中的副本元数据和项元数据的访问。ReplicaMetadata 还对删除检测和用于实现同步提供程序方法的帮助器提供服务。 | |
ReplicaMetadataAlreadyExistsException | 在元数据存储区中已经存在副本元数据的情况下,尝试在元数据存储区中创建新的副本元数据时引发的异常。 | |
ReplicaMetadataInUseException | 尝试创建一个特定副本 ID 的多个活动 ReplicaMetadata 实例时引发的异常。 | |
ReplicaMetadataNotFoundException | 当元数据存储区中不存在具有指定副本 ID 的副本元数据时引发的异常。 | |
SqlMetadataStore | 表示通过使用轻型数据库存储元数据来实现的元数据存储区。 | |
SqlSyncFieldValue | 表示项的自定义字段的值。 | |
SqlSyncMetadataStoreSerializer | 将副本的元数据在规范元数据文件格式和版本特定的元数据存储服务存储区格式之间进行序列化和反序列化。 | |
SyncFieldValue | 在派生类中重写时,表示项的自定义字段的值。 | |
SyncMetadataStoreSerializer | 由派生类重写时,将序列化和反序列化副本的元数据。 | |
UpgradeStartEventArgs | 为 MetadataStoreUpgradeStart 事件提供数据。 | |
VersionNotSupportedException | 尝试从元数据存储区获取副本元数据,但元数据存储区的实现不支持该元数据的版本时引发的异常。 |
接口
接口 | 说明 | |
---|---|---|
IProviderUpgradeCallback | 通过派生类实现时,表示 Sync Framework 可以调用的方法,这些方法可用于通知提供程序有关在因提供程序版本发生变更而启动的元数据存储区升级的过程中发生的事件。 |
委托
委托 | 说明 | |
---|---|---|
ReplicaMetadata. . :: . .ItemFilterCallback | 表示将用于确定项变更是否应包括在变更批中的方法。 |