Это довольно просто, ваша ошибка объясняет это.userParams.MaxPrice
равно нулю.Так что вам нужно добавить проверку на ноль к нему.Простым способом было бы изменить ваш запрос на:
if (userParams.MinPrice > 0 && userParams.MaxPrice != null && userParams.MaxPrice != 999999999)
{
products = products.Where(p => (p.Price >= userParams.MinPrice) &&
(p.Price <= userParams.MaxPrice));
}
Хотя, в зависимости от вашей логики, вам может потребоваться немного изменить ситуацию.Ключевой момент заключается в том, чтобы не предполагать, что свойство имеет значение, если оно имеет значение NULL, то вам нужно сначала проверить, что оно не равно NULL, а затем проверить его.что это обнуляемый int или что-то в этом роде.