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...:)
ありがとうございます.. しかし、この関数からデータベースオブジェクトを取得するにはどうすればいいですか?このデータベースオブジェクトをさらに操作する必要があるため... –
EnsureDatabaseExistsを呼び出し、サーバーからドキュメントを取得し、セーブ。 –
「要求されたタイプの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 –