【发布时间】:2016-07-21 09:54:39
【问题描述】:
我有以下 RavenDB 索引:
public class RidesByPostcode : AbstractIndexCreationTask<Ride, RidesByPostcode.IndexEntry>
{
public class IndexEntry
{
public string PostcodeFrom { get; set; }
public string PostcodeTo { get; set; }
}
public RidesByPostcode()
{
Map = rides => from doc in rides
select new
{
doc.DistanceResult.PostcodeFrom,
doc.DistanceResult.PostcodeTo
};
StoreAllFields(FieldStorage.Yes);
}
}
我还有一个代表邮政编码的字符串列表,我想获取所有 PostcodeFrom 位于邮政编码列表中的游乐设施:
var postcodes = new List<string> { "postcode 1", "postcode 2" };
var rides = _database.Query<RidesByPostcode.IndexEntry, RidesByPostcode>()
.Where(x => postcodes.Contains(x.PostcodeFrom))
.OfType<Ride>()
.ToList();
当然,RavenDb 说它无法理解 .Contains 表达式。
如何在 RavenDb 中实现这样的查询,而不必在 where 子句之前调用 .ToList()?
【问题讨论】: