我想在ravendb中创建一个数据库,我使用了EnsureDatabaseExist()函数。我无法使用名称空间Raven.Client.Extensions中的函数CreateDatabaseDocument(),并且在我的c#代码中,类是公共静态类MultiDatabase{}。vs2010中的智能感知未显示此函数。
我的代码是:enter code here
public CreateDatabaseOpResult CreateDatabase(ConnectionOperationResult connection,string name)
{
DocumentDatabase database;
CreateDatabaseOpResult databaseOperationResult = new CreateDatabaseOpResult();
if (connection.IsOperationSuccessfull == true)
{
try
{
var doc = connection.documentStore.DatabaseCommands.ForDefaultDatabase();
var docId = doc.Get("Raven/Databases/" + name);
if (docId == null)
{
//static class
//multidatabase
connection.documentStore.DatabaseCommands.EnsureDatabaseExists(name);
}
else
{
databaseOperationResult.IsOperationSuccessfull = false;
throw new ArgumentException("Database already exists");
}
databaseOperationResult.IsOperationSuccessfull = true;
databaseOperationResult.database = database;
}
//and i want to use this function from
namespace Raven.Client.Extensions
{
///<summary>
/// Methods to create mutli tenants databases
///</summary>
public static class MultiDatabase
{
public static RavenJObject CreateDatabaseDocument(string name)
{
AssertValidName(name);
var doc = RavenJObject.FromObject(new DatabaseDocument
{
Settings =
{
{"Raven/DataDir", Path.Combine("~", Path.Combine("Tenants", name))}
}
});
doc.Remove("Id");
return doc;
}
thanks in advance...:)
发布于 2012-04-17 05:58:54
CreateDatabase
是一个内部方法,它只返回数据库的文档。EnsureDatabaseExist
使用此方法,如果该文档不存在,还会存储该文档。
您应该使用EnsureDatabaseExist
方法。
https://stackoverflow.com/questions/10185322
复制