Linq to DataSet фильтрует один столбец для нескольких ключевых слов - PullRequest
0 голосов
/ 21 февраля 2011

У меня есть такой код:

 var modele = from model in ds.Tables["modele"].AsEnumerable()
                         where model.Field<string>("KRAJ_PRODUKCJI") == krajText
                         && model.Field<string>("FABRYKA") == fabrykaText
                        // && model.Field<string>("NAZWA") == itemId 
                         orderby model.Field<string>("NAZWA")
                         select model;

В закомментированной строке мне нужно динамически создать предложение where или проверить, что поле NAZWA равно одному из нескольких ключевых слов в itemId, который представляет собой список с несколькими ключевыми словами для проверки с помощью ||между.

Возможно ли это сделать?

Ответы [ 2 ]

1 голос
/ 21 февраля 2011

Вы пробовали что-то вроде:

where itemId.Contains(model.Field<string>("NAZWA"))

Я не уверен, что это то, что вы ищете, но это может быть.

@ Корчева не будет работать, потому чтоВы хотите "||".

Mam nadzieje ze to pomocne.

0 голосов
/ 21 февраля 2011

Может не работать прямо из коробки, но я думаю, вам стоит поискать ответ в этом направлении:

var keywords = itemId.split("||");

var model = from m in ds.Tables["modele"].AsQueryable();

model = model.Where(m => keywords.Contains(m.Field<string>("NAZWA"));
...