私はさまざまな例と質問を見てきましたが、このクエリをうまく書く方法を理解できません。 where句の条件はfilter.conditionにありますC#DataTableのwhere句を変数として使用するLinqクエリの使用
private object[] GetValueFromLookup(MultipleKeyConditionBuilder filter, string lookupValueField, DataTable datatableLookup)
{
Func<int, string> whereClause = test => filter.Condition;
IEnumerable<object> query =
from rows in datatableLookup.AsEnumerable().Where(whereClause)
select rows.Field<object>(lookupValueField);
return query.ToArray();
}
このエラーが発生しています。私はさまざまなことを試みましたが、残念ながらそれを解決する方法を理解できません。
MultipleKeyConditionBuilder.This機能は、フィルタ条件を与える
に 'System.func(int型、文字列)' 'System.func(system.Data.DataRow、int型、ブール値)' から変換することはできません 。それはとして定義されます。
public MultipleKeyConditionBuilder(List<string> sourceKeyFieldsList, List<string> referenceKeyFieldsList, DataRow sourceRow) {}
filter.Conditionは、例えば、文字列を与える "PROJECT_ID = 255454"
あなたの質問を編集し、 'MultipleKeyConditionBuilder'に軽く投げてください –
複数の条件がありますか?フィルタの値は何ですか。複数のフィルタの場合の条件? –
はい、1つ以上の条件があります。状況に応じて'条件+ = referenceKeyFieldsList [i] .ToValidSQLName()+ "=" + filterChar + sourceRow [sourceKeyFieldsList [i]] + filterChar; ' –