LINQ запрос, чтобы получить все продукты с минимальным и максимальным ценовым диапазоном? - PullRequest
0 голосов
/ 19 июня 2019

Я хочу получить все продукты в диапазоне минимальной и максимальной цены.На самом деле я передаю продукт (объект) с ценовым диапазоном, и, взяв его минимальное и максимальное значение цены, я хочу получить все продукты из базы данных в этом диапазоне.Я пробовал что-то вроде:

public List<Products> SuggestedProducts(Product product)
{
    List<Product> products = (from c in db.Products.Include(x = > x.Category).Include(x = > x.User.CityId.Country).Include("Images")
                              where (c.MinPrice >= product.MinPrice) && (c.MinPrice <= product.MaxPrice)
                              where (c.MaxPrice <= product.MaxPrice) && (c.MaxPrice > product.MinPrice)
                              where (c.User.CityId.Id == product.User.CityId.Id)
                              where (c.User.Id != product.User.Id)
                              select c).ToList();

    return products;
}

В приведенном выше коде я получаю (или пытаюсь получить) все те продукты, которые попадают в диапазон продуктов, которые я передаю. Что не работает должным образом.Мне нужен запрос, чтобы получить желаемый продукт

Примечание. Я использовал c.User.CityId.Id == product.user.CityId.Id для получения продуктов того же местоположения и c.User.Id != product.user.Id для пропуска продуктов от того же пользователя.

Ответы [ 2 ]

2 голосов
/ 19 июня 2019

Просто используйте одно where условие для цены

where (c.MinPrice >= product.MinPrice && c.MaxPrice <= product.MaxPrice)
1 голос
/ 21 июня 2019
List<Product> products = db.Products.Where(c => c.MinPrice >= product.MinPrice && c.MaxPrice <= product.MaxPrice && c.User.CityId.Id == product.User.CityId.Id && c.User.Id != product.User.Id);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...