Linq2SQL介于两者之间

时间:2010-02-25 19:50:37

标签: linq-to-sql between

可以在Linq to SQL中的SQL中执行此操作吗?

Select field from table where date between '2010-01-01' and '2010-01-31';

我意识到我能做到:

where (monthBeginDate < a.StopDateActual && a.StopDateActual < monthEndDate)

但我很好奇我是否可以做前者。我有一个坏习惯,就是把那些不那么多的事情搞砸了。

2 个答案:

答案 0 :(得分:5)

您可以执行以下操作:

public bool Between(DateTime value, DateTime from, DateTime To) {
   return value > from && value < to;
}

where Between(a.StopDateActual, monthBeginDate, monthEndDate)

但是,您应该注意,这适用于IEnumerable而不是IQueryable,即结果将在应用where之前从数据源中提取。在大量数据的情况下,这可能是一个性能问题,因此,你可以做的最好的地方就是你要做的最好的事情......只需要注意&gt;和&lt; !!!

答案 1 :(得分:4)

不,这是做到这一点的方法。我相信C#没有介于运算符之间。

你总是可以像我一样作弊并写一个扩展方法:

public static bool BetweenDates (this DateTime checker, DateTime floor, DateTime ceiling)
{
    return (checker <= ceiling) && (checker >= floor);
}

然后你可以这样做; - )

.Where(s => s.StopDateActual.BetweenDates(monthBeginDate, monthEndDate));