Как проверить список содержит несколько значений в Linq to sql - PullRequest
2 голосов
/ 19 июля 2011

В моем приложении возникла проблема с запросом.

Я пытаюсь выполнить запрос с несколькими значениями условий.

IQueryable<DealsDetails> DD = (from D in DbContext.Deals
                                        where lst.Contains(D.DealCategory) 
                                        select D);

У меня есть этот запрос, и lst будет содержать этизначения как:

lst.Add("Other");
        lst.Add("Services");

И D.DealCategory содержит значение, подобное этому.

Other,Beauty,Services
Beauty,Services,
Services
Other,
Beauty
Other,Services

Мне нужны все эти строки из таблицы, которая содержит любой элемент этого списка.Средства Все строки, которые содержат Прочее и Услуги.

Результат:

Прочее, Красота, Услуги Красота, Услуги, Услуги Прочее Прочее, Услуги

Без учета строки красоты.

Подскажите, пожалуйста, как мне написать этот запрос.

Первое редактирование

Мне нужны все те строки, которые в столбце DealCategory содержат любые элементы из списка.

Спасибо

1 Ответ

0 голосов
/ 19 июля 2011

Выполните объединение с двумя списками и верните только элементы из первого списка:

IQueryable<DealsDetails> DD = from D in DbContext.Deals
                              join C in lst
                                on D.DealCategory equals C
                              select D;

Редактировать: Как сказал @Muhammad, это не сработает, так как сделки находятся в Db, а lst в памяти, но я дам там измененный ответ, если вы сможете отфильтровать lst элементы прямо на сервере:

IQueryable<DealsDetails> DD = from D in DbContext.Deals
                              join C in DbContext.DealCategories
                                on D.DealCategory equals C
                              where [Clauses to filter Cs]
                              select D;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...