Поисковый запрос, чтобы найти слово, которое может быть внутри нескольких свойств - PullRequest
0 голосов
/ 05 июля 2018

У меня есть три свойства

First name
Last name
Username

Пользователь может искать слово, которое может быть во всех трех свойствах. У меня были эти два запроса для достижения желаемого результата

searchTermFilters = searchTermFilters
.For(term)
.InFields(x => x.Firstname, x => x.Surname, x => x.Username);


searchTermFilters = searchTermFilters
            .OrFilter(x => x.Firstname.AnyWordBeginsWith(term))
            .OrFilter(x => x.Surname.AnyWordBeginsWith(term))
            .OrFilter(x => x.Username.AnyWordBeginsWith(term));

Проблема в том, что для них обоих это точно совпадает. Я хочу что-то вроде .Contains в Linq. Есть идеи?

Ответы [ 2 ]

0 голосов
/ 05 июля 2018

Используйте этот способ с или условием

searchTermFilters.Filter(x => x.Firstname.Contains(term) | 
                         x => x.Lastname.Contains(term) |
                         x => x.Username.Contains(term))
0 голосов
/ 05 июля 2018

Для одного фильтра =>

searchTermFilters = searchTermFilters.Where(w=>w.FirstName.Contains(term)).ToList();

Для нескольких фильтров =>

searchTermFilters = searchTermFilters.Where(w=>w.FirstName.Contains(term) || w.Surname.Contains(term)).ToList();

Надеюсь, эта помощь.

...