これにはリフレクションを使用する必要があります。あなたはdynamicly選択した列でフィルタしようとしている場合は、このような何かを試すことができます。
string propertyName
string keyword
ParameterExpression parameter = Expression.Parameter(typeof(YourType), "x");
Expression property = Expression.Property(parameter, propertyName);
Expression target = Expression.Constant(keyword);
Expression containsMethod = Expression.Call(property, "Contains", null, target);
Expression<Func<YourType, bool>> lambda =
Expression.Lambda<Func<YourType, bool>>(containsMethod, parameter);
var companies = repository.AsQueryable().Where(lambda);
を私、あなたが、あなたがラムダを生成するための同じ原理を使用することができ、特定の列を選択しているやろうとしています式を選択して使用する(条件をマイナスした)
var companies = repository.AsQueryable().Where(whatever).Select(lambda);
出典
2011-10-21 19:32:27
AJC
?あなたの例では、それを割り当てた後、_col1を使用していません。指定してください... – AJC
私は、文字列のリストから文字列値に基づいて列名を入れなければならないので、フィルタリングはしません – Andy