1

私はこれを持っています:

// selectedOptions Contains a list of string constants
var selectedOptions = new List<string>(...); 
Expression<Func<T, bool>> condition = null;
switch (propertyName)
{
    case "Property1":
        condition = x => selectedOptions.Contains(x.Property1);
        break;
    case "Property1":
        condition = x => selectedOptions.Contains(x.Property2);
        break;
    case "Property3":
        condition = x => selectedOptions.Contains(x.Property3);
        break;
}

この条件は、Linq to Entities の Where() の述語として使用されます。アイデアは、EFが次の行に沿ってSQLを生成することですwhere Property1 in (...)。これを行うためのより良い方法があるかどうかはわかりませんが、うまくいきます。

私の問題は、スイッチを削除して、次のようなものを持ちたいということです。

condition = x => selectedOptions.Contains(x.[propertyName]);

出来ますか?

4

1 に答える 1