0

データベースの DateTime 列から MonthId と MonthName を選択するのに問題があります。私はこれを試しました。コンパイルされますが、実行時エラー「エンティティへのlinqはメソッド 'System.String.ToString()'を認識しません」

var months = bookings.Select(c => new { 

                MonthId = c.ActualEta.Value.Month,
                MonthName = c.ActualEta.Value.Month.ToString("MMMM")
        }).ToList();

誰?ここでは、ActualEta は null 許容の datetime です。

4

2 に答える 2

3
var months = bookings
    .AsEnumerable()
    .Select(c => new { 
        MonthId = c.ActualEta.Value.Month,
        MonthName = c.ActualEta.Value.Month.ToString("MMMM")
    }).ToList();

に注意してくださいAsEnumerable()。これは基本的にクエリを LinqToEntities から LinqToObjects に変換し、 のような非 SQL メソッドを使用できるようにしますToString()

于 2013-09-29T18:06:41.877 に答える
3
var months = bookings.Select(c => new { 
     MonthId = ((DateTime)c.ActualEta.Value).Month,
     MonthName = ((DateTime)c.ActualEta.Value).ToString("MMMM")
}).ToList();
于 2013-09-29T18:07:33.640 に答える