我已迁移到 RavenDB 2.0 并正在使用IN
解析查询时产生错误的运算符编写查询。
我正在使用 anEmbeddableDocumentStore
来隔离单元测试中的问题。我目前正在运行 RavenDB Embedded 2.0.2230。我已经尝试对 RavenDB.Embedded 1.2.2033-Unstable 运行相同的测试,并且没有报告错误。
被查询的对象是直截了当的:
public class Company
{
public string Name { get; set; }
public string Country { get; set; }
}
我的设置和查询如下:
var documentStore = new EmbeddableDocumentStore { RunInMemory = true };
documentStore.Initialize();
using (var session = documentStore.OpenSession())
{
var list = new[] { "", "", "" };
var query = from c in session.Query<Company>()
where c.Country.In(list)
select c;
var companies = query.ToList();
}
查询编译,但在运行时解析查询时收到以下错误:
Lucene.Net.QueryParsers.ParseException :
Could not parse modified query:
'@in<Country>:("EMPTY_STRING","EMPTY_STRING",[[EMPTY_STRING]]) '
original was:
'@in<Country>:([[EMPTY_STRING]],[[EMPTY_STRING]],[[EMPTY_STRING]]) '
如您所见,集合中的最后一项与前面的项的解析方式不同。这似乎是导致问题的原因。
有任何想法吗?