![]() |
|
Модераторы: gambit |
![]()
|
|
| mihryak |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 731 Регистрация: 28.4.2007 Где: С-Пб Репутация: 1 Всего: 36 |
Хотелось бы фильтровать объекты по вхождению любого из задаваемых слов в одно из полей
В Linq to Objects это выглядело бы так:
Но Linq to Sql хоть и закономерно, но всё равно неприятно ругается
Как бы мне переписать запрос, сохранив функциональность? Workaround'ы в голове есть (например, строго ограничить количество слов сверху, по сути захардкодив его в запросе), но это не наш метод |
||||
|
|||||
| Idsa |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 5 Всего: 62 |
mihryak, это мне напомнило проблему с Contains в Entity Framework. Решается она созданием своего метода, генерирующего Expression: http://social.msdn.microsoft.com/forums/en...4-b7e4a1ab59f0/ Конечно, не очень красиво... но зато работает.
P. S. Я по ошибке не понял, что ему не нравится: метод Contains или все, кроме метода Contains? Можно попробовать заменить Contains на Any... |
|||
|
||||
| mihryak |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 731 Регистрация: 28.4.2007 Где: С-Пб Репутация: 1 Всего: 36 |
Idsa, спасибо
правда, сходу не получилось заменить Equals на нужное мне выражение, дома ещё покопаюсь linq не понравился как раз Any, применяемый к локальной коллекции, транслятор не может преобразовать проверку words.Any(w => d.Caption.ToLower().Contains(w) в соответствующий sql запрос (я тоже не могу) |
|||
|
||||
| Idsa |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 5 Всего: 62 |
А, может, попробовать заменить Any на Contains? Между ними вообще есть разница? |
|||
|
||||
| mihryak |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 731 Регистрация: 28.4.2007 Где: С-Пб Репутация: 1 Всего: 36 |
а что в условии Contains написать?
мне ведь надо перебрать сами слова, а не проверять наличие среди них какого-либо совет инвертировать условие мне не раз уже попадался, но вот в моём случае мне не удаётся его реализовать |
|||
|
||||
| mihryak |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 731 Регистрация: 28.4.2007 Где: С-Пб Репутация: 1 Всего: 36 |
решил задачу
вызов
вот ещё ссылка небезытересная Idsa, держи заслуженный плюс |
||||
|
|||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | LINQ (Language-Integrated Query) | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |