0

次のコードがあります。

var q = context.Fuels.AsQueryable();
if (dateEdit1.EditValue != null && dateEdit2.EditValue != null)
{
   q.Where(d => d.FuelDate >= dateEdit1.DateTime && d.FuelDate <= dateEdit2.DateTime);
}

それは機能しており、テーブル内のすべての行を取得します。

しかし、私がこのコードを使用しているとき:

if (dateEdit1.EditValue != null && dateEdit2.EditValue != null)
{
     var r = context.ExecuteStoreQuery<Fuel>(String.Format("SELECT * FROM Fuel WHERE FuelDate BETWEEN '{0}' AND '{1}'", 
                 dateEdit1.DateTime.Year + "-" + dateEdit1.DateTime.Month + "-" + dateEdit1.DateTime.Day, 
                 dateEdit2.DateTime.Year + "-" + dateEdit2.DateTime.Month + "-" + dateEdit2.DateTime.Day));
}

それは機能していますが、関係を機能させるには最初の方法を使用する必要があります。

最初の問題は何ですか?

4

1 に答える 1

3

if 句の中で、それを q に割り当てる必要があります。そうしない場合、q はすべてのクエリにすぎませんFuels

これはうまくいくはずです:

q = q.Where(d => d.FuelDate >= dateEdit1.DateTime && d.FuelDate <= dateEdit2.DateTime);
于 2013-11-07T18:26:43.267 に答える