查询ravendb中的数据

时间:2015-04-04 13:01:01

标签: c# .net ravendb

在ravendb里面我有属性文件。除了其他属性UniqueCode之外,每个文档都有。如何在ravendb管理工作室内查询特定文档的文档。

我在使用

查询(顶级链接)内部
from d in docs.Properties
where d.UniqueCode == 1234
select d;

但我得到了No results found

每个属性文档的元数据是

{
    "Raven-Entity-Name": "Properties",
    "Raven-Clr-Type": "MyProject.Test.Data.Domain.Model.Property, MyProject.Test.Data"
}

1 个答案:

答案 0 :(得分:1)

RavenDb Management Studio中的查询UI使用Lucene syntax,并在indexes上运行。

您需要先定义一个索引,其中包含您希望能够搜索的任何字段:

public void Init()
{
    _sharedBarCodeReader.Delegate = new BarCodeReaderDelegate(this);
}

private class BarCodeReaderDelegate : ICBarCodeReaderDelegate
{
    public BarCodeReaderDelegate(BarCodeScanner barCodeScanner)
    {
        _barCodeScanner = barCodeScanner;
    }

    public override void BarcodeData(string data, BarCodeSymbologies type)
    {
        var handler = _barCodeScanner.BarCodeData;
        if (handler != null)
            handler(this, data);
    }

    public override void ConfigurationRequest() { }

    private readonly BarCodeScanner _barCodeScanner;
}

现在您可以使用lucene语法来实际查询:

from p in docs.Properties
select new {
    p.UniqueCode
}

使用RavenDb示例,我将定义一个类似的查询:

ProductReorderLevel query

然后可以找到符合特定值的所有产品:

enter image description here