Вопрос

Возможно ли сделать это в SQL в LINQ до SQL?

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

Я понимаю, что могу сделать:

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

Но мне было любопытно, смогу ли я сделать первое. У меня плохая привычка облажаться меньше и больше, чем на подобных утверждениях.

Это было полезно?

Решение

Нет, это способ сделать это. C# не имеет между оператором.

Вы всегда можете обмануть и написать метод расширения, как я:

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

Тогда вы можете сделать это ;-)

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

Другие советы

Вы могли бы сделать следующее:

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

where Between(a.StopDateActual, monthBeginDate, monthEndDate)

Тем не менее, вы должны отметить, что это работает на IEnumerable и не включен IQueryable, IE, результаты будут получены из источника данных до применения, где будет применено. Это может быть проблемой производительности в случае большого количества данных, поэтому, где вы можете сделать, вы можете сделать ... просто будьте осторожны с> и <!!!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top