我能够根据以下代码成功运行 RavenDB 的简单测试:http ://ravendb.net/tutorials/hello-world
接下来我尝试以嵌入式方式运行它,但我不断收到以下错误:
Message: Could not find transactional storage type: Raven.Storage.Esent.TransactionalStorage, Raven.Storage.Esent
StackTrace: at Raven.Database.Config.InMemoryRavenConfiguration.CreateTransactionalStorage(Action notifyAboutWork) in c:\Builds\raven\Raven.Database\Config\InMemoryRavenConfiguration.cs:line 272
at Raven.Database.DocumentDatabase..ctor(InMemoryRavenConfiguration configuration) in c:\Builds\raven\Raven.Database\DocumentDatabase.cs:line 109
at Raven.Client.Client.EmbeddableDocumentStore.InitializeInternal() in c:\Builds\raven\Raven.Client.Embedded\EmbeddableDocumentStore.cs:line 130
at Raven.Client.Document.DocumentStore.Initialize() in c:\Builds\raven\Raven.Client.Lightweight\Document\DocumentStore.cs:line 388
at Tests.RavenEmbedded.RavenDB..ctor() in C:\Users\Pranav\Documents\Projects\Repositories-Clone\Common-clone\Tests\RavenDB.cs:line 114
at Tests.TestRavenDB.Basics() in C:\Users\Pranav\Documents\Projects\Repositories-Clone\Common-clone\Tests\RavenDB.cs:line 170
设置:
目标框架是.NET Framework 4
我在我的项目中添加了以下引用:
- \RavenDB-Build-309\EmbeddedClient\Raven.Client.Embedded.dll
- \RavenDB-Build-309\Client\Raven.Client.Lightweight.dll
- \RavenDB-Build-309\EmbeddedClient\Raven.Storage.Esent.dll
- \RavenDB-Build-309\EmbeddedClient\Raven.Storage.Managed.dll
代码是:
命名空间 Tests.RavenEmbedded
{
使用 Raven.Client.Client;
使用 Raven.Client.Document;
使用 Raven.Storage.Esent;
使用 Raven.Storage.Managed;
使用 Tests.RavenData;
RavenDB 类
{
公共 RavenDB()
{
// EmbeddableDocumentStore store = new EmbeddableDocumentStore { DataDirectory = @"C:\Temp\RavenData" };
//Raven.Storage.Esent.TransactionalStorage
var store = new EmbeddableDocumentStore { DataDirectory = @"C:\Temp\RavenData" };
商店.初始化();
#region 写入数据
使用 (var session = store.OpenSession())
{
var 产品 = 新产品
{
成本 = 3.99m,
名称=“牛奶”,
};
session.Store(产品);
session.SaveChanges();
session.Store(新订单
{
客户=“客户/ayende”,
订单行 =
{
新订单行
{
产品 ID = 产品 ID,
数量 = 3
},
}
});
session.SaveChanges();
}
#endregion
#region 读取数据
使用 (var session = store.OpenSession())
{
var order = session.Load("orders/1");
Debug.Print("客户:{0}", order.Customer);
foreach (var orderLine in order.OrderLines)
{
Debug.Print("Product: {0} x {1}", orderLine.ProductId, orderLine.Quantity);
}
session.SaveChanges();
}
#endregion
}
}
}
命名空间测试
{
公共类 TestRavenDB
{
公共静态无效基础()
{
尝试
{
//var db = new RavenClientServer.RavenDB();
var db = new RavenEmbedded.RavenDB();
}
捕捉(例外前)
{
Debug.Print("消息:{0}",ex.Message);
Debug.Print("StackTrace: {0} ",ex.StackTrace);
}
}
}
}
我已经尝试搜索了几天,也尝试了一些不同的变体。我不确定发生了什么。