Я обращаюсь к бизнес-классу с использованием ObjectDataSource и пытаюсь произвести вывод, который имеет смысл для пользователя. Возвращаемые значения описывают класс (как в классе и обучении, а не как программное обеспечение). Я хотел бы показать время урока в следующем диапазоне: «9:00 - 10:00».
Это запрос Linq, который я использую для извлечения данных:
return classQuery.Select(p => new SelectClassData
{
ClassID = p.ClassID,
Title = p.Title,
StartDate = p.StartDate.ToShortDateString(),
EndDate = p.EndDate.ToShortDateString(),
TimeOfClass =
p.StartDate.ToShortTimeString() + " - " +
p.EndDate.ToShortTimeString()
}).ToList();
Как видите, я кодирую время начала и окончания в начальной и конечной датах, даже если они потенциально могут быть в разные даты.
Когда я выполняю этот код, я получаю:
"Не удалось перевести выражение 'p.EndDate.ToShortTimeString ()' в SQL и не удалось обработать его как локальное выражение."
Я знаю, что проецирую результаты, но, будучи новичком в Linq, я предполагал, что C # вызов ToShortTimeString произошел после проекции. Может кто-нибудь помочь мне понять, как получить строку, которую я ищу?