【发布时间】:2017-01-12 16:48:57
【问题描述】:
我看到了不同的示例和问题,但我不知道如何成功编写此查询。 where 子句条件在 filter.condition
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();
}
我收到此错误。我尝试了不同的方法,但不幸的是我无法理解如何解决它。
无法从 'System.func (int,string)' 转换为 'System.func(system.Data.DataRow,int,bool)'
MultipleKeyConditionBuilder。这个函数给出过滤条件。它被定义为。
public MultipleKeyConditionBuilder(List<string> sourceKeyFieldsList, List<string> referenceKeyFieldsList, DataRow sourceRow) {}
filter.Condition 给出一个字符串,例如“Project_id = 255454”
【问题讨论】:
-
编辑您的问题并为
MultipleKeyConditionBuilder提供一些启示 -
可以有多个条件吗?如果有多个过滤器,filter.Condition 的值是多少?
-
是的,它有多个条件,。视情况而定。 ' 条件 += referenceKeyFieldsList[i].ToValidSQLName() + " = " + filterChar + sourceRow[sourceKeyFieldsList[i]] + filterChar; '
标签: c# linq dynamic where-clause linq-to-objects