0

次のような db テーブルがあります。状態は 1 から 6 の範囲の数値で、状態が変化する日を保存しています。

|  State |     Date   |
|    3   |  5/19/2012 |
|    1   |  6/12/2012 |
|    4   |  7/2/2012  |

条項を書いていますが、.Where行き詰まっています。基本的に、私は特定の日付のデータをクエリしています。必要なオブジェクト モデルのプロパティの 1 つは、その特定の日付の状態です。私が書く場合:

   from s in MyDC.StateTable
   where s.Date == SomeDate.Date
   select s.State 

もちろん、必要なものは返されません。たとえば、2012 年 6 月 22 日のクエリを実行している場合、その日付の州であるため 1 を返す必要があります。2012 年 6 月 12 日に 1 に設定されました。このwhere句をどのように書くのですか?

ご提案いただきありがとうございます。

4

3 に答える 3

0

これはあなたが探しているものですか?

var date = ??;

var state = from s in MyDC.StateTable
where x.SomeDate.Date ==  date
select s.State;
于 2012-07-08T01:18:17.797 に答える
0

おそらく次のようなものです:

// var date = DateTime.Now.Subtract(TimeSpan.FromMonths(1));
var state = MyDC.StateTable.Where(xx => date >= xx.Date)
                           .OrderBy(xx => xx.Date)
                           .First()
                           .State;
于 2012-07-08T01:24:04.790 に答える
0

これはうまくいくと思います。構文が正確かどうかはわかりませんが、ほぼ同じです。

var state = MyDC.StateTable
   .Where(row => row.Date <= SomeDate)
   .OrderByDescending(row.Date)
   .First()
   .Select(row => row.State)
于 2012-07-08T01:24:20.493 に答える