0

我有一个如下所示的 db 表:State 是一个范围从 1 到 6 的数字,我正在存储状态更改的日期。

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

我正在写一个.Where条款,但我被卡住了。基本上,我正在查询某个日期的数据,而我想要的对象模型的属性之一是该特定日期的状态。如果我写:

   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 回答