标签: ravendb

使用.NET客户端进行RavenDB并发更新

我想知道使用.net客户端给出以下场景会发生什么.

using (IDocumentSession session = documentStore.OpenSession())
{
    thingToUpdate = session.Load<TUpdateThing>(id);

    // Modify thingToUpdate here

    // ** Someplace else the object is updated and saved. **

    session.SaveChanges();  // What happens here?
}
Run Code Online (Sandbox Code Playgroud)

这会根据etag的变化自动抛出错误,还是会关闭并覆盖其他人所做的更改?

我已经在http api上看到了一些关于这个的东西:http: //ravendb.net/docs/http-api/http-api-comcurrency

c# ravendb

3
推荐指数
1
解决办法
891
查看次数

NServiceBus 4没有RavenDB

无论如何在没有安装RavenDB的情况下使用NServicebus 4?我们正在使用2.5,我想升级到4但如果我们必须在生产服务器上安装RavenDB,这将是一个艰难的销售.有什么工作吗?

nservicebus ravendb nservicebus4

3
推荐指数
1
解决办法
2477
查看次数

Ravendb:按日期降序索引排序

我正在尝试创建一个索引,该索引允许我按日期降序检索前 n 个项目。

似乎没有选项可以按日期对索引进行排序?

我需要能够使用带子句的索引进行查询Take(n)以获取最后的n项目。

public class ConcernStateByDateIndex : AbstractIndexCreationTask<ConcernState>
{
    public ConcernStateByDateIndex()
    {
        this.Map = concerns => from concern in concerns
                               select concern.EntryDate;
        this.Sort(_ => _.EntryDate, SortOptions.?????)
    }
}
Run Code Online (Sandbox Code Playgroud)

c# indexing ravendb

3
推荐指数
1
解决办法
1289
查看次数

如何在RavenDb中查询展平子集合?需要索引?

我在C#web项目中使用RavenDb.我有一个对象,我需要查询其子集合,每个子对象1行和一些根/父对象属性.
注意:这不是实际设计,只是简化了这个问题.

    public class OrderLine
    {
        public string ProductName { get; set; }
        public int Quantity { get; set; }
        public DateTime? ShipDate { get; set; }
    }
    public class Order
    {
        public int OrderId { get; set; }
        public string CustomerName { get; set; }
        public DateTime OrderDate { get; set; }
        public List<OrderLine> OrderLines { get; set; }

    }
Run Code Online (Sandbox Code Playgroud)

订单行的订单是一个单独的文档.ShipDate将在每一行更新,因为并非所有产品都有库存.

我需要能够创建使用以下列发送的最近10个产品的列表:

OrderId
Customer
ProductName
ShipDate
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为不支持SelectMany:

        var query = from helper in RavenSession.Query<Order>()
                        .SelectMany(l => l.OrderLines, (order, orderline) …
Run Code Online (Sandbox Code Playgroud)

c# linq ravendb

3
推荐指数
1
解决办法
1146
查看次数

RavenDB Management Studio - 删除文档

有人知道如何删除RavenDB Management Studio中的ravendb文档吗?

如果我转到文档的详细信息页面,我可以执行所有操作(包括更新),但禁用删除按钮.

我已经尝试将AnonymousAccess设置为"All"并重新启动服务器,但它没有改变任何东西.

ravendb

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

当以斜杠结尾时,RavenDB将整数添加到ID

我使用RavenDB 1.0.0.426

在将数据从外部源导入RavenDB时,我只是经历了一个奇怪的场景:

我选择使用与外部源使用相同的唯一ID,前缀为某个字符串.但.当我存储ID为以'/'结尾的文档时,raven会自动在ID的末尾添加一个数字,导致文档不会覆盖使用相同ID存储的现有文档.

我重新创建了一个简单的场景来导致错误:

我保存的类型:

public class Foo
{
    public string Id { get; set; }
    public Foo(string id)
    {
        Id = id;
    }
}
Run Code Online (Sandbox Code Playgroud)

保存具有相同ID 10次的文档的方法,然后检查文档计数:

public void RunTest(string id)
{
    for (int i = 0; i < 10; i++)
    {
        using (var doc = new DocumentStore() { Url = "http://pc-009:8080/" })
        {
            doc.Initialize();
            using (var session = doc.OpenSession())
            {
                session.Store(new Foo(id));
                session.SaveChanges();
            }
        }
    }

            // Wait for the data to be persisted
            Thread.Sleep(2000);

    using (var doc …
Run Code Online (Sandbox Code Playgroud)

ravendb

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

Raven DB的文件系统是否已加密?

我只是想确定Raven DB使用的文件系统上的文件是否加密?有人可以直接打开文件系统上的文件并直接将它们从二进制转换为ASCII,还是加密?

我试图说服我们的管理层给RavenDB一个机会,但他们担心安全问题.他们给出的示例是,您不能只打开MS SQL db文件,将其从二进制转换为ASCII,然后读取它.所以我试图验证RavenDB是否也阻止了这种事情?

encryption ravendb

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

在RavenDB中使用SaveChangesAsync

我将大量数据插入RavenDB数据库; 大约2 500000条记录.这需要在尽可能短的时间内完成.

我使用一个列表来保存SaveChangesAsync返回的Task对象:

session.Store(loc);

splitter++;
if (splitter % 2048 == 0)
{
    var t = session.SaveChangesAsync();
    tasks.Add(t);

    if (tasks.Count == 2)
    {
        Task.WaitAll(tasks.ToArray());
        tasks.Clear();
    }
}
Run Code Online (Sandbox Code Playgroud)

此代码在具有i7(8核)和12 GB RAM的机器上运行.如果我持有的Task对象的数量是2(如您在代码中看到的那样),但是如果我将此数字增加到8(核心数),则会收到System.IndexOutOfRangeException(有时会出现System.AggregateException: Raven.Abstractions.Exceptions.ConcurrencyException:PUT尝试使用非当前的etag文档'X/I'.

这里有什么问题?

谢谢

c# asynchronous insert nosql ravendb

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

Ravendb Savechanges(); 花太长时间跑?

与RavenDB陷入了一个奇怪的问题

public ActionResult Save(RandomModel model)
{
//Do some stuff, validate model etc..

RavenSession.Store(model);
RavenSession.SaveChanges();


var newListOfModels = RavenSession.Query<RandomModel>().ToList();
return View("randomview",newListOfModels);
}
Run Code Online (Sandbox Code Playgroud)

newListOfModels不包含我刚用store方法添加的模型.

但是,如果我在savechanges之后添加Thread.Sleep(100),则存储的模型将包含在新列表中.

我是以错误的方式存储和保存到RavenDB的东西吗?

我该怎么做?

当然,只需将传入的模型添加到newListOfModels并运行SaveChanges,例如在basecontrollers onactionexecuted方法中,就可以解决这个问题.

我主要担心的是为什么我需要延迟线程才能查询documentsession并在那里找到我新添加的模型.

c# ravendb asp.net-mvc-3

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

如何在ravendb中设置uniqueid

我正在学习RavenDB并熟悉工作原理.我不明白的一件事是如何将raven创建的id保存到属性中.

public class User
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string ID { get; set; } //This will be null when I save object to DB I want it to be same as generated
}

[TestMethod]
public void TestSaving()
{
    using (var session = documentStore.OpenSession())
    {
        var user = new User { FirstName = "John", LastName = "Doe" };
        session.Store(user);
        session.SaveChanges(); //I want that property to save that id that …
Run Code Online (Sandbox Code Playgroud)

c# ravendb

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