数据提供者架构

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());
    // ...
 }