检索名称取决于价格条件

时间:2011-08-24 18:46:34

标签: c# linq entity-framework linq-to-entities

我有一张表product

product_id 
product_name
product_price

如何检索价格范围为的产品名称:

1) 0-500
2) 500 - 1000
3) 1000+

是否可以根据这些条件检索产品名称?

3 个答案:

答案 0 :(得分:2)

假设这些是单独的查询,price永远不会消极:

var products1 = products.where(p=> p.product_price < 500);
var products2 = products.where(p=> p.product_price >=500 && p.product_price < 1000);
var products3 = products.where(p=> p.product_price >=1000);

包括较低的值,但不包括的较高值。

答案 1 :(得分:1)

var range1 = from p in products
        where p.product_price > 0 && product_price < 500
        select p;

var range2 = from p in products
        where p.product_price >= 500 && product_price < 1000
        select p;

var range3 = from p in products
        where p.product_price >= 1000
        select p;

答案 2 :(得分:0)

我建议先退回所有结果,然后将它们分开。而不是对数据库进行3次单独的查询。

var prods =  (from p in products
             select p).ToList();

var range1 = from p in prods
             where p.product_price > 0 && p.product_price < 500
             select p;

var range2 = from p in prods
             where p.product_price >= 500 && p.product_price < 1000
             select p;

var range3 = from p in prods
             where p.product_price >= 1000
             select p;