【发布时间】:2012-06-26 13:04:49
【问题描述】:
当在编译时不知道多个术语时,是否有推荐的方法来使用 StartsWith 搜索多个术语中的每一个?
我的设想是这样的:
var searchTerms = "John Doe".Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
var query = session.Query<Person, PersonIndex>()
.Where(x => x.FirstName.StartsWithAnyOf(searchTerms) ||
x.LastName.StartsWithAnyOf(searchTerms));
查询相当于:
var query = session.Query<Person, PersonIndex>()
.Where(x => x.FirstName.Starts(searchTerms[0]) ||
x.LastName.StartsWith(searchTerms[0]) ||
x.FirstName.Starts(searchTerms[1]) ||
x.LastName.StartsWith(searchTerms[1]));
答案是在运行时构建 LINQ 查询(PredicateBuilder 或类似)吗?
【问题讨论】: