2012-04-17 8 views
0

ravendbにデータベースを作成したいのですが、EnsureDatabaseExist()関数を使用しました。私は名前空間Raven.Client.ExtensionsからクラスCreateDatabaseDocument()関数を使用することができません。また、クラスはpublic static class MultiDatabase {}を使用しています。 vs2010のIntellisenseはこの機能を示していません。CreateDatabaseDocument()関数を使ってデータベースを作成する

私のコードは次のとおりです。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...:) 

答えて

1

CreateDatabaseはちょうどデータベース文書を返さ内部メソッドです。 EnsureDatabaseExistはこのメソッドを使用し、存在しない場合はそのドキュメントも保存します。

EnsureDatabaseExistメソッドを使用する必要があります。

+0

ありがとうございます.. しかし、この関数からデータベースオブジェクトを取得するにはどうすればいいですか?このデータベースオブジェクトをさらに操作する必要があるため... –

+0

EnsureDatabaseExistsを呼び出し、サーバーからドキュメントを取得し、セーブ。 –

+0

「要求されたタイプの1つ以上を読み込めません」という例外があります。 documentStore.DatabaseCommands.EnsureDatabaseExists(name); databaseOperationResult.IsOperationSuccessfull = true; Raven.Database.Config.InMemoryRavenConfiguration memoryRaven = new Raven.Database.Config.InMemoryRavenConfiguration() { DatabaseName = name、 }; DocumentDatabaseデータベース=新しいDocumentDatabase(memoryRaven); //最後の文では例外がスローされます。help me –

関連する問題