linq где -> сравнить со списком длинных - PullRequest
0 голосов
/ 08 декабря 2011

У меня есть следующий запрос linq

var q = from e in dbTov.assignedTaxonomyToContents
where e.taxonomy_id == lsTaxID[0]
|| e.taxonomy_id == lsTaxID[1]
|| e.taxonomy_id == lsTaxID[2]
select e;

Но в lsTaxID может быть еще несколько элементов (я не знаю, насколько он динамический при каждом запросе страницы).

Есть ли интуитивно понятный способ сделать это?

Спасибо

Ответы [ 5 ]

1 голос
/ 08 декабря 2011

Попробуйте

where lsTaxId.Contains(e.taxonomy_id)
1 голос
/ 08 декабря 2011

Использование Содержит:

var q = from e in dbTov.assignedTaxonomyToContents
where lsTaxID.Contains(e.taxonomy_id)
select e;
0 голосов
/ 08 декабря 2011

Если все элементы lsTaxID [..] не совпадают, ваш пример кода никогда ничего не выберет.Попробуйте это;

var q = from e in dbTov.assignedTaxonomyToContents
where lsTaxID.Contains(e.taxonomy_id)
select e;
0 голосов
/ 08 декабря 2011

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

dbTov.assignedTaxonomyToContents
  .Where(e => lsTaxID.Any(id => id == e.taxonomy_id))
0 голосов
/ 08 декабря 2011

Попробуйте это:

var q = 
    from e 
    in dbTov.assignedTaxonomyToContents 
    where lsTaxID.Contains(e.taxonomy_id);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...