我正在尝试让NEventStore(v4)在嵌入式模式下与RavenDB一起工作。
我的连接字符串如下:
<add name="EventStore" connectionString="DataDir = ~Data" />
在Application_Start中,我这样设置Raven Store:
var documentStore = new EmbeddableDocumentStore
{
ConnectionStringName = "EventStore"
};
documentStore.Initialize();
这将在初始化任何事件存储代码之前运行。此时,我可以使用Raven来保存文档。所以Raven正在工作。
对于NEventStore,init如下所示:
_store = Wireup.Init()
.LogToOutputWindow()
.UsingRavenPersistence("EventStore")
.InitializeStorageEngine()
.UsingJsonSerialization()
.Compress()
.UsingSynchronousDispatchScheduler()
.DispatchTo(new DelegateMessageDispatcher(DispatchCommit))
.Build();
当这个运行时,我得到这个错误:
连接字符串名称:无法分析"EventStore",未知选项:"datadir"
在查看(RavenDB)源代码时,连接字符串解析器似乎不知道它正在读取嵌入的连接字符串。但我看不出有任何方式表明NEventStore将在嵌入式模式下使用Raven。
选项"DataDir"仅适用于EmbeddableDocumentStore。NEventstore创建一个DocumentStore。据我所知,你无法改变这种行为。
您可以在启用HTTP的情况下启动Embedded RavenDB并连接到localhost。