對於我正在處理的項目,我無法使用[dbo]模式。從查看EventStore源看,使用非dbo模式看起來並不重要。EventStore 3.1 - SQL持久性 - 如何使用非dbo模式?
到目前爲止,我已經拿出最好是使用自定義的話是這樣的:
- 子類CommonSqlDialect
- 添加MsSqlDialect 的私有實例
- 然後覆蓋所有虛擬CommonSqlDialect的特性做一些像
例子:
public override string AppendSnapshotToCommit
{
get { return customizeSchema(_msSqlDialect.AppendSnapshotToCommit); }
}
private string customizeSchema(string dboStatement)
{
// replace "[dbo]" with "[notdbo]",
// replace " Commits" with " [notdbo].Commits",
// replace " Snapshots" with " [notdbo].Snapshots"
}
我還必須自定義InitializeStorage屬性以將「sysobjects」替換爲「sys.objects」,以便我可以在模式名稱上添加其他約束。
這可以工作,但它似乎應該有自定義架構和表名稱的連接選項。
UsingSqlPersistence(...)
.WithSchema(...)
.WithCommitsTable(...)
.WithSnapshotsTable(...)
有沒有更好的方法來處理我錯過的?