LINQ中等效的等价物

时间:2010-10-29 18:58:15

标签: linq

我正在寻找以下查询的LINQ等价物

Select * from ct_rate
WHERE
'2010-10-01 00:00:00'
BETWEEN start_date and end_date;

任何想法?

5 个答案:

答案 0 :(得分:7)

您需要使用两个比较操作:

DateTime date = new DateTime(2010, 10, 1);

var results = from rate in ct_rates
              where rate.StartDate <= date && rate.EndDate >= date
              select rate;

答案 1 :(得分:3)

只需使用普通比较运算符

var result = ct_rates
    .Where(x => x.start_date <= myDate && x => x.endDate >= myDate);

答案 2 :(得分:0)

这样的事情?

var result = from context.ct_rate.Where(d => d.start_date >= "2010-10-01 00:00:00" && d.end_date <= "2010-10-01 00:00:00")

答案 3 :(得分:0)

在我们的案例中,罗伯特的答案接近我所寻求的。在我们的数据模型中,我们的“结束”或“通过”日期列可以为空。

需要以下内容:

Category.Where(
    w => w.ValidFrom <= now && 
   (w.ValidThru == null ? DateTime.MaxValue : w.ValidThru) >= now).Select(s => s).Dump();

答案 4 :(得分:0)

我发现只想比较数据部分时这很有用。

var results = from rate in ct_rates
              where rate.StartDate.Date <= date && rate.EndDate.Date >= date
              select rate;