2011-08-03 4 views
1

私は、ドロップダウンリストに値を設定するために使用するId(int)とDescription(nvarchar)という2つのフィールドを持つLookupTableという単純なテーブルを持っています。なぜ「ラムダ式をデリゲート型ではないため 'string'」に変換できないのですか?

次のコードは私にエラーを与える:

IEnumerable<SelectListItem> items = 
    _entities.LookupTable.Select(t=> new SelectListItem {Value = t.Id, 
                 Text = t.Description }); 

私はSystem.Linqのを使用しています。私はt.Id.ToString()を試してみるとランタイムエラーが出ます。

シンプルなものが欠けているはずですか?

答えて

1

_entities.LookupTableの種類はあなたの質問からは分かりません。我々はそれがSomeModel、2つのプロパティIdDescriptionが含まれているいくつかのIQueryable<SomeModel>またはIEnumerable<SomeModel>であると仮定した場合、あなたはSelectListItemValueTextプロパティが文字列であるとして、あなたが適切に文字列に、これらの2つの値を変換していることを確認する必要があります。

また、熱心に.ToString()を呼び出すことで、クエリを実行しようとする場合があります。

var items = _entities 
    .LookupTable 
    .ToList() 
    .Select(t => new SelectListItem 
    { 
     Value = t.Id.ToString(), // <-- notice that you might need a ToString if the Id property is integer 
     Text = t.Description 
    }); 
関連する問題