Мои намерения состоят в том, чтобы агрегировать результаты, а не сужать их.Как преобразовать следующие запросы linq в (Наличие), как в SQL
if (Request.QueryString["VenueType"] == null)
Renders = _renderContext.Renders;
else
{
List<int> venueTypeIds = Request.QueryString["VenueType"].Split(',')
.Select(int.Parse).ToList();
Renders = _renderContext.Renders.Where(v => venueTypeIds.Contains(v.VenueTypeId));
}
// SECOND CRITERION:
if (Request.QueryString["SearchTerm"] != null)
Renders = Renders.Where(r => r.Title.ToLower()
.Contains(Request.QueryString["SearchTerm"].ToLower()));
// ADDITIONAL CRITERION:
if (Request.QueryString["EventType"] != null)
{
List<int> eventTypeIds = Request.QueryString["EventType"].Split(',')
.Select(int.Parse).ToList();
Renders = Renders.Where(w => eventTypeIds.Contains(w.EventTypeId));
}
if (Request.QueryString["DisplayFormat"] != null)
{
List<int> displayFormatIds = Request.QueryString["DisplayFormat"].Split(',')
.Select(int.Parse).ToList();
Renders = Renders.Where(w => displayFormatIds.Contains(w.DisplayFormatId));
}
Строки запроса исходят из групп флажков, которые могут иметь один-много вариантов. Результаты, которые я пытаюсь вернуть, не должны сужаться после первого набора критериев, но вместо этого возвращать больше результатов.
Вопрос: Как использовать предложение where или предложение GroupBy для получения совокупности возвращенных элементов, а не для сужения возвращаемых элементов?
Я голосую за этот ответ, потому что, хотя я и задал вопрос, и у меня есть ответ, который мне помог. Он может иметь небольшую синтаксическую ошибку, но это помогло мне. Другие отрицают это, и если другие считают, что это плохо, это должно быть плохо, хотя это очень помогло мне. Я не буду размещать как можно больше в Stack Overflow и вместо этого посмотрю на мои сверстники для ответов на вопросы, о которых у меня есть вопросы. Спасибо, что поставил меня на место Stack Overflow! –