RavenDB выполняет поиск каждого из нескольких терминов, используя StartsWith

Есть ли рекомендуемый способ поиска каждого из нескольких терминов с использованием 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 или аналогичным )?

7
задан walther 29 June 2012 в 18:53
поделиться