我正在使用RavenDB build 371,我有以下型号:
class Product {
public string Id { get; set; }
public ProductSpec[] Specs { get; set; }
}
class ProductSpec {
public string Name { get; set; }
public string Value { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我希望能够查询具有一组规格的产品.查询单个规范时:
session.Query<Product>()
.Where(product => product.Specs.Any(spec => spec.Name == "Color" && spec.Value == "Red"))
.ToList();
Run Code Online (Sandbox Code Playgroud)
返回预期结果,但是当添加其他规范谓词时:
session.Query<Product>()
.Where(product => product.Specs.Any(spec => spec.Name == "Color" && spec.Value == "Red"))
.Where(product => product.Specs.Any(spec => spec.Name == "Country" && spec.Value == "US"))
.ToList();
Run Code Online (Sandbox Code Playgroud)
即使第一个查询返回的结果包含规格名称为"Country"且规格值为"US"的产品,也不会返回任何结果.使用LuceneQuery方法时会观察到相同的结果.这似乎与此讨论 …