标签: ravendb

使用RunInMemory查看RavenDB中的原始JSON

我使用RavenDB进行集成测试RunInMemory = true.我正在调试的问题之一与JSON序列化有关.查看内存中序列化JSON数据(作为字符串)的最简单方法是什么DocumentStore

json ravendb

2
推荐指数
1
解决办法
288
查看次数

序列化/反序列化System.Uri

我一直在使用RavenDB两个小时,所以如果我错过了一些明显的东西,我会道歉.

我正在使用System.Uri类型的属性存储非规范化视图模型.Uri被序列化为一个字符串,我想这是可以的,但是当我加载文档时抛出这个异常:

Message=Could not cast or convert from System.String to System.Uri.
Source=Newtonsoft.Json
StackTrace:
    at Newtonsoft.Json.Utilities.ConvertUtils.EnsureTypeAssignable(Object value, Type initialType, Type targetType) in d:\Development\Releases\Json\Working\Src\Newtonsoft.Json\Utilities\ConvertUtils.cs:line 267
    at Newtonsoft.Json.Utilities.ConvertUtils.ConvertOrCast(Object initialValue, CultureInfo culture, Type targetType) in d:\Development\Releases\Json\Working\Src\Newtonsoft.Json\Utilities\ConvertUtils.cs:line 244
    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.EnsureType(JsonReader reader, Object value, CultureInfo culture, JsonContract contract, Type targetType) in d:\Development\Releases\Json\Working\Src\Newtonsoft.Json\Serialization\JsonSerializerInternalReader.cs:line 544
Run Code Online (Sandbox Code Playgroud)

serialization ravendb

2
推荐指数
1
解决办法
2415
查看次数

插入RavenDB; 最快的方式

我想从一个文本文件(每行是一个类似csv的条目)导入1亿个条目到RavenDB数据库.最快的方法是什么?

补充说明:

我还没有任何索引(我会在插入数据后创建它们).RavenDB在本地计算机上以服务模式运行,没有任何安全性增强(但是因为我还在测试RavenDB).该测试将在2台不同的机器上运行,1)2芯4GB内存2)8芯12 GB内存.

我已经完成了将一部分数据(200万个条目)插入到RavenDB中,但它没有我想要的那么快.通过使用OpenAsyncSession并为每1024条记录调用SaveChangesAsync并再次通过调用OpenAsyncSession创建一个新会话,而不是在500'000条目之后等待返回任务(由SaveChangesAsync返回),我得到一个"索引超出范围"异常我无法根除.但是,如果我等待任务结束(通过创建与核心数相同的任务),过程将成功,但速度不够快.

此代码成功运行:

using (var reader = new StreamReader(@"D:\*\DATA.TXT", Encoding.UTF8))
{
    string line = null;
    IAsyncDocumentSession session = null;

    var tasks = new List<Task>();
    var locCount = 0;

    while ((line = reader.ReadLine()) != null)
    {
        if (string.IsNullOrWhiteSpace(line)) continue;

        var loc = Parse(line);

        if (session == null) session = documentStore.OpenAsyncSession();

        session.Store(loc);
        locCount++;

        if (locCount % 1024 == 0 && session != null)
        {
            try
            {
                var t = session.SaveChangesAsync();
                tasks.Add(t);
                session = null;
            }
            catch (Exception x)
            { …
Run Code Online (Sandbox Code Playgroud)

c# asynchronous insert nosql ravendb

2
推荐指数
1
解决办法
2233
查看次数

RavenDB和Composite模式

假设我有这样的结构

public class Form
{
   public List<Field> Fields { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

Field类可以是复合的,也包括从Field类派生的其他Fields ,所以我有一些层次结构.表单作为可靠文档保存到RavenDB中,它可以正常工作.我只是想知道Form从RavenDB 获取实例,我希望Raven创建适当的类(类,派生自Field类).所以,假设我有两个派生类FieldDerived1,FieldDerived2并将它们放入后面的Fields集合中,Form我希望有两个实际类型的元素 - FieldDerived1并且FieldDerived2我添加了这些类的所有附加属性?

c# nosql document-database ravendb

2
推荐指数
1
解决办法
259
查看次数

查找RavenDb会话中的更改

如何找出RavenDb会话中已修改/更改的实体?

c# ravendb

2
推荐指数
1
解决办法
563
查看次数

为什么RavenDB会劫持我的Nancy请求?

从使用相同连接代码的Winforms应用程序,RavenDB工作正常.我可以放弃存储和检索文档.

当我尝试在Nancy应用程序中执行相同的操作时,结果完全出乎意料.

Nancy正在侦听端口12345,并且RavenDB在嵌入式模式下运行,UseEmbeddedHttpServer启用并侦听端口8080.

第一个根据请求http://localhost:12345/获取网页响应的请求.任何后续请求都http://localhost:12345/被重定向到/raven/studio.html.如果我做的第一个请求是/widgetsNancy按预期返回小部件的JSON列表,但任何后续请求都会返回:

Could not figure out what to do

Your request didn't match anything that Raven knows to do, sorry...
Run Code Online (Sandbox Code Playgroud)

似乎RavenDB正在劫持Nancy正在监听的端口.什么会导致这种行为?

c# iis ravendb nancy .net-4.5

2
推荐指数
1
解决办法
243
查看次数

使用ntfs压缩的ravendb数据库

我正在尝试使用NTFS压缩来压缩RavenDb数据库.它正在努力将文件夹属性更改为Compressed,但是当我启动ravendb服务器时,数据库不再无法访问它.我收到:"无法创建数据库testdb发生了一个或多个错误." "可以打开名为:testdb的数据库发生了一个或多个错误."

有线索吗?谢谢,亚历克斯

compression ntfs ravendb

2
推荐指数
1
解决办法
170
查看次数

RavenDB - 如何在许多插入的生产中使用?

在听说NoSQL几年后,我终于开始在.Net MVC应用程序(简单博客)中使用RavenDB.启动并运行嵌入式数据库非常快速且轻松.

但是,我发现在将对象插入文档存储区后,当后续页面刷新时,它们并不总是存在.当我刷新页面时,它们会显示出来.我在某处读到这是由于陈旧的索引.

我的问题是,你应该如何在一直有插件发生的网站上使用它(例如:电子商务).这不会导致陈旧的索引和不可靠的查询结果吗?

asp.net-mvc nosql ravendb

2
推荐指数
1
解决办法
534
查看次数

RavenDB与Transaction Scope不能很好地协作

我有以下测试用例,我希望通过.但它没有通过RavenDB.
如果我使用MsSql创建完全相同的测试,它确实通过.

        var connectionString = "Url=http://localhost:8080";
        var store = new DocumentStore();
        store.ParseConnectionString(connectionString);
        store.Initialize();
        using (var scope = new TransactionScope())
        using (var session = store.OpenSession())
        {
            session.Store(dog);
            session.SaveChanges();

            var dogs = session.Query<Dog>().Customize(x => x.WaitForNonStaleResults()).ToList();
            Assert.AreEqual(1, dogs.Count);
            scope.Complete();
        }
Run Code Online (Sandbox Code Playgroud)

我正在尝试编写一些相同的代码,无论我选择什么数据库,这只是我试图通过的测试用例的一个例子.

我尝试过各种各样的东西,比如waitfornonstaleresults,以及allownonautheitative..something等等.

c# transactionscope ravendb

2
推荐指数
1
解决办法
923
查看次数

使用Docker容器设计系统架构

我是Docker的新手.我想要一些专家关于容器设计的意见.我在MongoDB云(Atlas)中建立了一个数据库.我在Docker容器中有Windows应用程序,包括Windows操作系统和基于应用程序的组件.我想使用RavenDB,这个数据库对我来说很新.我的Windows容器的一个组件将与MongoDBRavenDB进行通信.我的问题是我应该为RavenDB创建不同的docker容器,还是在现有的windows容器中安装RavenDB.这是设计决策问题.我是RavenDBDocker的新手,所以我的利弊还不清楚.请帮助我.

mongodb ravendb docker

2
推荐指数
1
解决办法
95
查看次数