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 はすべて 10 進数型です。また、このクエリにいくつかの条件を追加しました。すべて正常に動作します。しかし、この比較 (価格) は空白の 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 に答える