Этот запрос возвращает идентификаторы дверей, к которым у двери_ид есть все соответствующие теги.Преобразование запроса Llinq из всех совпадений в OR (по крайней мере, один тег должен совпадать)
List<decimal> matchingDoors db.tags
.Where(x => x.user_id == userId && (null == SystemId|| x.syid == SystemId))
.GroupBy(x => x.door_id)
.Where(x => tags.All(y =>
x.Any(z => z.name == y)))
.Select(x => x.Key).ToList<decimal>();
Как я могу изменить запрос, чтобы возвращать результаты, которые соответствуют хотя бы одному тегу ('OR')?
@a_horse_with_no_name проверить это. –
Он возвращает только тех, кто соответствует обоим. –
Неверный запрос, обновляющий вопрос –