我正在使用 ObjectDataSource 访问业务类并尝试生成对用户有意义的输出。返回值描述一个类(如在课堂和教学中,而不是软件中)。我想将上课时间显示为这样的范围:“9:00 AM - 10:00 AM”。
这是我用来提取数据的 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 发生在投影之后。谁能帮我弄清楚如何获得我正在寻找的字符串?