資料提供者架構

Unicorn 資料提供程式有兩個元件:特定於資料庫的實現和 Unicorn 實現。

Unicorn 實現是 Unicorn 依賴項的單獨配置,可以自動序列化。例如,如果你要序列化兩個預設,則需要兩個 UnicornDataProvider 例項 - 每個 IPredicate 實現一個例項。

特定於資料庫的實現是原始 Sitecore 資料提供程式的子類,它為一個或多個 UnicornDataProvider 例項提供容器。開箱即用,提供了 UnicornSqlServerDataProvider。如果你使用 Oracle,你可以自己動手。這個提供程式實際上是一個不可阻塞的事件處理程式,它允許 Unicorn 捕獲專案更改,即使正在使用邪惡的 EventDisabler 類。

如果要將多個 Unicorn 資料提供程式連線到資料庫,可以建立一個派生自 UnicornSqlServerDataProvider 的類。在本類中,你可以選擇:

  • 建立一個使用基礎建構函式注入提供者的建構函式:
public MyDataProvider(string connectionString) :
base(connectionString, new UnicornDataProvider(), new
UnicornDataProvider(), ...)
  • 建立一個使用程式碼注入提供者的建構函式(如果你必須構造依賴關係等,這在基本呼叫中不太適合):
public MyDataProvider(string connectionString) : base(connectionString, null)
 {
    AddUnicornDataProvider(new UnicornDataProvider());
    // ...
 }