RavenDB 2.0 に移行し、IN
クエリの解析時にエラーを生成する演算子を使用してクエリを作成しています。
EmbeddableDocumentStore
単体テストで問題を切り分けるために を使用しています。現在、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]]) '
ご覧のとおり、コレクションの最後のアイテムは、前のアイテムとは異なる方法で解析されています。これが問題の原因と思われるものです。
何か案は?