ラムダ関数を使用してストアを選択し、結果を SelectListItem に変換してレンダリングできるようにしようとしています。ただし、「Select句の式のタイプが正しくありません」というエラーがスローされます。
IEnumerable<SelectListItem> stores =
from store in database.Stores
where store.CompanyID == curCompany.ID
select (s => new SelectListItem { Value = s.ID, Text = s.Name} );
ViewBag.storeSelector = stores;
私は何を間違っていますか?
編集:
また、この状況で Int を String に変換するにはどうすればよいですか? 以下は機能しません。
select (s => new SelectListItem { Value = s.ID.ToString(), Text = s.Name} );
select (s => new SelectListItem { Value = s.ID + "", Text = s.Name} );
編集2:
Int から String への変換を理解します。int2string 変換関数を含めるのを忘れるのは Microsoft の典型です。これは、完全に機能する構文で、誰もが使用している実際の回避策です。
select new SelectListItem { Value = SqlFunctions.StringConvert((double)store.ID), Text = store.Name };
この状況をばかげていると言うのは控えめな表現です。