DBからデータが出てきて、簡単にスキーマを変更できません。私はそれを並べ替え、数値IDに基づいてコントロールにバインドします。問題は、APIがint
の代わりに文字列フィールドに数値を格納し、Linq barfsが変換を試みていることです。エンティティへ注文方法Linqクエリで文字列フィールドの整数を指定する
myControl.DataSource = dataFromDB.OrderBy(o => int.Parse(o.StringHoldingAnInt));
LINQは方法「のInt32解析(可能System.String)」メソッドを認識しない、この方法は、ストア式に変換することができません。
Convert.ToInt32
も機能しません。
LINQ to Entitiesは、 'Int32 ToInt32(System.String)'メソッドを認識せず、このメソッドをストア式に変換することはできません。値がすべて同じ長さではありません、それはこのようにそれらを注文してしまうため、文字列としてソート
は適していません:1、10、11、2、3 ...
どのくらいのデータがありますか?クライアント側でソートすることは可能でしょうか? – dlev
あなたはすべての文字列が同じ長さになるように文字列を '0'で埋めることができますが、String.PadLeftはLinqでサポートされているかどうかはわかりません。 –
@dlev DBの数百行、私の質問から省略したWhere()クエリの後の数十行しかありません。 –