2

c# で選択リストを作成しようとしています。私のコード:

       var ceremonies = db.Ceremonies;
        var Ceremonies =
            from c in ceremonies
            select new SelectListItem
            {
                Text = c.Name + "_" + c.Date,
                Value = c.Id.ToString()
            };

しかし、ここでは次のような例外が発生していますToString() method not supported。どうしたの ?

4

1 に答える 1

14

クエリは SQL に変換されていますが、 への呼び出しをToString正しく処理できません。一般に、これを修正する最も簡単な方法は、クエリをデータベースで実行する必要がある部分に効果的に分割し、次の方法で LINQ to Objects に切り替えることAsEnumerableです。

var ceremonies = db.Ceremonies
                   .Select(c => new { c.Name, c.Date, c.Id }
                   .AsEnumerable()
                   .Select(c => new SelectListItem {
                               Text = c.Name + "_" + c.Date, 
                               Value = c.Id.ToString()
                           });

余談ですが、大文字と小文字のみが異なる 2 つのローカル変数を宣言すると、読みにくくなります。

于 2012-08-05T20:10:50.400 に答える