0

我在 vs2012 中使用 EF 5。我正在使用 DataContext 并使用一些 linq 表达式在 Iqueryable 中进行搜索。我想搜索一个

var res= dbContext.Products.OrderBy(s => s.Id).AsQueryable();
if (startPrice > -1 && endPrice > -1 && (startPrice < endPrice))
{
     res = res.Where(s => (s.UnitPrice >= startPrice && s.UnitPrice <= endPrice));
}

var list= res.ToList();

这里 startPrice、endPrice、UnitPrice 都是十进制类型。我还使用此查询添加了几个条件。一切正常。但是这个比较(对于价格)返回一个空白的 json 数据。我尝试过使用 decimal.Compare() 方法,但没有运气。你能在这方面帮助我吗?我正在学习linq。但没有找到解决办法。如果可能的话给一些建议:在谷歌中搜索这种解决方案是什么?

4

1 回答 1

0

这里我使用的是 Northwnd 示例数据库

    decimal? startPrice = Convert.ToDecimal(400.5100);
     decimal? endPrice = Convert.ToDecimal(500.5100);

    var res = NDC.Orders.OrderBy(s => s.OrderID).AsQueryable();                        
                if (startPrice > -1 && endPrice > -1 && (startPrice < endPrice))
                {
                    res = res.Where(s => (s.Freight >= startPrice && s.Freight <= endPrice));
                }

                var l = res.ToList();

     foreach (Order dcl in l)
                {
                    Response.Write(dcl.Freight.ToString());
                    Response.Write("<br/>");
                }

and result is
458.7800
477.9000
487.3800
411.8800
424.3000
487.5700
400.8100
于 2012-12-17T11:20:18.793 回答