Я разрабатываю приложение (. Net Core 3.1, C# 8), которое использует Entity Framework Core.
Я хотел бы отфильтровать таблицу с несколькими параметрами фильтрации.
Я получаю условия фильтрации в JSON и десериализую их в объект. Я хочу написать LINQ-запрос where, который будет фильтровать таблицу на основе этих динамических c параметров фильтрации.
Поворот в том, что мне нужно управлять фильтрацией с помощью множества опций и комбинаций.
- Вы можете отфильтровать
market
, country
, vendor
, а остальные параметры фильтра будут null
. - Вы хотите отфильтровать
country
и vendor
тогда market
будет null
, а также остальные параметры фильтра.
Я запрашиваю огромную таблицу, поэтому важно написать запрос, который полностью переводится в SQL.
Следующий код работает некорректно. Я ищу нечто подобное, которое может решить эту проблему:
var filters = new demoFilterEntity()
{
Market = new List<string>() { "LAT", "NAM" }
};
var filteredData = demoMainRepository.GetAll().Where(x =>
x.Market != null && (filters.Market != null ? filters.Market.Contains(x.Market) : false) &&
x.Country != null && (filters.Country != null ? filters.Country.Contains(x.Market) : false)).ToList();
Я был бы признателен за предложения о том, как я могу пройти через это и динамически управлять фильтрацией.