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 は初めてなので、ToShortTimeString への C# 呼び出しが投影後に発生したと想定していました。探している文字列を取得する方法を教えてくれる人はいますか?