Я не уверен, что вы можете сделать это через чистый LINQ, если вы не создадите свои собственные функции LINQ.Если вы можете выполнить специальный запрос и заставить EF4 преобразовать его обратно в объекты, как вы можете это сделать в методе DataContext.Translate LINQ2SQL, вы можете преобразовать его следующим образом:
CONVERT(datetime, logdate, 103)
И, таким образом, ваш запрос будетбыть:
SELECT
*
FROM
changes
WHERE
CONVERT(datetime, logdate, 103) > GETDATE()
ORDER BY
CONVERT(datetime, logdate, 103)
В качестве альтернативы, если вы можете добавить в схему (я полагаю, вы не можете изменить столбец varchar, чтобы он изначально сохранялся как дата / время), вы можете добавить вычисляемый столбец следующим образом:
ALTER TABLE
changes
ADD
logdateDatetime AS CONVERT(datetime, logdate, 103) PERSISTED
А затем запросите столбец logdateDatetime вместо logdate.