通过CreateDatabaseDocument()函数创建adatabase

问题描述:

我想在ravendb中创建一个数据库,我使用EnsureDatabaseExist()函数。我无法使用名称空间Raven.Client.Extensions中的函数CreateDatabaseDocument(),并且我的c#代码中的类为public static class MultiDatabase {}。 vs2010中的Intellisense不显示此功能。通过CreateDatabaseDocument()函数创建adatabase

我的代码是: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...:) 

CreateDatabase是刚刚返回的数据库文件的内部方法。 EnsureDatabaseExist使用此方法,如果文件不存在,也会存储该文件。

您应该使用EnsureDatabaseExist方法。

+0

非常感谢你.. 但是我怎样才能从这个函数获取数据库对象。因为我需要进一步处理这个数据库对象... – 2012-04-17 06:43:56

+0

调用EnsureDatabaseExists,然后从服务器获取文档,修改它,然后保存。 – 2012-04-17 07:59:59

+0

它发出异常“无法加载一个或多个请求的类型”。documentStore.DatabaseCommands.EnsureDatabaseExists(name); databaseOperationResult.IsOperationSuccessfull = true; Raven.Database.Config.InMemoryRavenConfiguration memoryRaven = new Raven.Database.Config.InMemoryRavenConfiguration() { DatabaseName = name, }; DocumentDatabase database = new DocumentDatabase(memoryRaven); //在上一条语句中,它引发异常。请帮助我 – 2012-04-18 09:01:39