0

6つのテキストを含むコンボがNA,PO,FA,GO,VG,EXあり、where句のフィールドとして使用されているこのコンボで選択された値に対してLinqクエリを実行したいと思います。例えば:

'if "NA" is selected :
Dim query = from t in db.table where t.NA > 0 Select t
'If "PO" is selected :
Dim query = from t in db.table where t.PO > 0 select t

等...

6 ifステートメントを記述したり、「ケースを選択」を使用したりせずに、エレガントな方法でこれを行う方法

4

1 に答える 1

0

PropertyInfo選択した文字列に基づいてを取得するには、リフレクションを使用する必要があります。次に、それをLINQクエリで使用します。データベースに行くのは悲しいかもしれませんが...試してみないとわかりません。LINQクエリでは次のようにを使用PropertyInfoします。

Dim selectedPropertyInfo = db.table.GetType().GetProperties().FirstOrDefault(p => p.Name == "NA")

Dim query = from t in db.table
            where selectedPropertyInfo.GetValue(t, null) > 0
            select t;
于 2012-06-22T13:58:35.273 に答える