У меня есть метод, который принимает ObjectQuery и добавляет предложения Where к нему в зависимости от того, получает ли он значения для различных параметров фильтра. Метод должен возвращать ObjectQuery. Как я могу выполнить базовое сравнение даты, например. где датаX < датаY.Сравнение Date/DateTime ine Entity SQL Where where
Это мой текущий код:
if (myDateFilter != null)
{
query = query.Where(
string.Format(
"it.ExpireDate < cast('{0}' as System.DateTime)",
myDateFilter));
}
С myDateFilter, имеющим значение DateTime.Now, этот код говорит: System.Data.SqlClient.SqlException: Преобразование типа VARCHAR данных для данных даты и времени тип привел к превышению значения.
Все остальные параметры являются строковыми или целочисленными фильтрами, поэтому не было проблемой для реализации. Есть идеи??
OK, похоже, что я пытаюсь передать дату, которая принимает строчную форму '31/7/2009 ', которая ломается, но если я передаю' 1/1/2009 ', это работает, поэтому я думаю, что есть разница в культурах того, что в дБ и что происходит в приложении. Как я могу сравнить их в том же формате ????? Или каким-то культурным инвариантным способом ... – andrej351