EnsureDatabaseExists是命名空间中IDatabaseCommands定义的扩展方法Raven.Client.Extensions.要使其工作,您需要为此命名空间添加using语句.
using Raven.Client;
using Raven.Client.Extensions;
using (DocumentStore store = new DocumentStore()
{
Url = "http://localhost:8080/" ;
})
{
store.Initialize();
store.DatabaseCommands.EnsureDatabaseExists("SomeDatabase");
}
Run Code Online (Sandbox Code Playgroud)
这是我使用的扩展方法:
public static bool DatabaseExists(this IDocumentStore documentStore,
string databaseName)
{
var headers = documentStore.DatabaseCommands.Head("Raven/Databases/" + databaseName);
return headers != null;
}
Run Code Online (Sandbox Code Playgroud)轻松打电话:
bool exists = documentStore.DatabaseExists("foo");
Run Code Online (Sandbox Code Playgroud)
当您的documentStore指向raven的默认系统数据库时,这种方法有效.如果在文档存储上设置DefaultDatabase,我认为它不会正常工作.