通过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
方法。
非常感谢你.. 但是我怎样才能从这个函数获取数据库对象。因为我需要进一步处理这个数据库对象... – 2012-04-17 06:43:56
调用EnsureDatabaseExists,然后从服务器获取文档,修改它,然后保存。 – 2012-04-17 07:59:59
它发出异常“无法加载一个或多个请求的类型”。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