Microsoft.Synchronization.MetadataStorage 命名空間
中繼資料儲存服務支援儲存與處理同步處理中繼資料。
中繼資料儲存服務會將許多本身的類別定義為抽象類別,好讓儲存服務寫入器可以實作一組自訂類別,以便將中繼資料儲存在任何種類的資料存放區中。
中繼資料儲存服務也提供使用輕量型資料庫之類別的實作,以便將同步處理中繼資料儲存在檔案系統中的單一資料庫檔案中。
所有中繼資料存放區的主要類別為 MetadataStore。這個抽象基底類別包含一些方法,可初始化並取得中繼資料存放區內的複寫中繼資料,以及啟動和停止資料庫上的交易。覆寫這個基底類別的類別可能會提供一些方法來建立及開啟中繼資料存放區,例如 SqlMetadataStore。此類別包含了一些可建立及開啟中繼資料存放區的方法。
複寫中繼資料會在中繼資料存放區內使用 InitializeReplicaMetadata 來初始化。這個方法的 FieldSchema 參數會讓一組自訂欄位得以建立。這些欄位可用來存放有關中繼資料存放區內之項目的其他中繼資料。IndexSchema 參數會將欄位集合定義成索引。這些欄位可用來有效率地尋找中繼資料存放區內的項目。
ReplicaMetadata 類別會封裝特定複寫的所有中繼資料。您可以使用 GetKnowledge 和 ReplicaId 等成員來存取複寫中繼資料:
此類別中的幾個方法可協助實作同步處理提供者方法,例如下列方法:ReplicaMetadata.GetChangeBatch 可以執行 KnowledgeSyncProvider 之 GetChangeBatch 方法的大部分工作。
您可以從 KnowledgeSyncProvider 的 ProcessChangeBatch 方法呼叫 GetLocalVersions,以便尋找變更批次項目的本機版本 (變更套用者所需的項目)。
ReplicaMetadata 也包含 DeleteDetector。提供者可以使用這個屬性內所包含的物件,以偵測哪些項目已經從項目存放區刪除,而且應該在中繼資料存放區內標記為已刪除。
使用 ReplicaMetadata 方法依項目識別碼或索引欄位搜尋 (例如 FindItemMetadataById 或 FindItemMetadataByIndexedFields) 就可以在中繼資料存放區內找到項目中繼資料。ItemMetadata 類別會封裝特定項目的所有中繼資料。這個類別包含標準同步處理中繼資料,例如 ChangeVersion、CreationVersion、GlobalId 和 IsDeleted。這個類別也包含幾個方法,這些方法可用來存取之前初始化複寫中繼資料時所定義的任何自訂欄位。
類別
類別 | 描述 | |
---|---|---|
ChangeUnitMetadata | 表示與同步處理範圍內之項目所包含的變更單位相關聯的中繼資料 (Metadata)。 | |
DeleteDetector | 當 DeleteDetector 由衍生類別 (Derived Class) 所實作時,會判斷哪些項目已從複寫中刪除。這些項目必須在中繼資料 (Metadata) 存放區內標示為已刪除。 | |
ExplicitTransactionRequiredException | 當呼叫的方法需要中繼資料存放區上已啟動的明確交易時,所擲回的例外狀況。 | |
FieldSchema | 包含結構描述資訊,該資訊會定義中繼資料存放區內之項目的自訂欄位。 | |
IndexSchema | 表示單一或多重資料行索引,可用於更有效率地尋找中繼資料存放區內的項目。 | |
ItemMetadata | 當被覆寫時,表示與同步處理範圍內之項目有關聯的中繼資料。 | |
ItemMetadataNotFoundException | 當中繼資料存放區內找不到具有指定之識別碼或自訂欄位值的項目時,所擲回的例外狀況。 | |
KeyUniquenessException | 當嘗試儲存具有無效或重複識別碼的項目時,所擲回的例外狀況。 | |
MetadataFieldNotFoundException | 當具名的自訂欄位不存在時,所擲回的例外狀況。 | |
MetadataStorageEngineException | 中繼資料儲存引擎的作業失敗時,所擲回的例外狀況 (Exception)。 | |
MetadataStore | 當被覆寫時,表示中繼資料存放區,並提供取得複寫中繼資料物件的方法。複寫中繼資料物件用於存取特定複寫的中繼資料。這是所有使用中繼資料儲存服務 API 之中繼資料存放區的抽象基底類別。 | |
MetadataStoreException | 所有中繼資料儲存區例外狀況的基底類別 (Base Class)。 | |
MetadataStoreInvalidOperationException | 當方法呼叫不適用於此物件的目前狀態時,所擲回的例外狀況 (Exception)。 | |
MetadataStoreProviderVersionMismatchException | 呼叫 DeserializeReplicaMetadata 而且指定的預期提供者相容性版本與序列化中繼資料中儲存的提供者版本不符時所擲回的例外狀況。 | |
MultipleReplicasInStoreException | 呼叫 GetSingleReplicaMetadata 而且中繼資料存放區包含多個複寫的中繼資料時,所擲回的例外狀況。 | |
ReplicaMetadata | 被覆寫時,會提供中繼資料存放區內之複寫中繼資料和項目中繼資料的存取權。ReplicaMetadata 也會提供刪除偵測的服務及實作同步處理提供者方法的 Helper。 | |
ReplicaMetadataAlreadyExistsException | 嘗試在中繼資料存放區內建立新複寫的中繼資料,而中繼資料存放區內已經有該複寫的中繼資料存在時,所擲回的例外狀況。 | |
ReplicaMetadataInUseException | 嘗試針對特定的複寫識別碼建立一個以上的使用中 ReplicaMetadata 執行個體時,所擲回的例外狀況。 | |
ReplicaMetadataNotFoundException | 當中繼資料存放區內沒有指定之複寫識別碼的複寫中繼資料存在時,所擲回的例外狀況。 | |
SqlMetadataStore | 表示使用輕量型資料庫所實作的中繼資料存放區,以便儲存中繼資料。 | |
SqlSyncFieldValue | 表示項目之自訂欄位的值。 | |
SqlSyncMetadataStoreSerializer | 在標準中繼資料檔案格式與版本特有的中繼資料儲存服務存放區格式之間序列化並還原序列化複寫的中繼資料。 | |
SyncFieldValue | 在衍生類別中覆寫時,表示項目之自訂欄位的值。 | |
SyncMetadataStoreSerializer | 由衍生類別所覆寫時,會序列化並還原序列化複寫的中繼資料。 | |
UpgradeStartEventArgs | 提供 MetadataStoreUpgradeStart 事件的資料。 | |
VersionNotSupportedException | 當嘗試從中繼資料存放區取得複寫中繼資料,但是中繼資料存放區的實作不支援此中繼資料的版本時,所擲回的例外狀況。 |
介面
介面 | 描述 | |
---|---|---|
IProviderUpgradeCallback | 由衍生類別實作時,表示 Sync Framework 可呼叫的方法,以便向提供者通知因為提供者版本已變更而起始之中繼資料存放區升級期間發生的事件相關資訊。 |
委派
委派 | 描述 | |
---|---|---|
ReplicaMetadata.ItemFilterCallback | 表示將會判斷項目變更是否應該包含在變更批次內的方法。 |