我在vs2012中使用EF 5。我正在使用DataContext并在Iqueryable中搜索一些linq表达式。我想搜索
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。但没有找到解决办法。如果可能的话,给出一些建议:在谷歌搜索什么样的解决方案?
答案 0 :(得分:0)
这里我使用的是Northwind示例数据库
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