如何创建具有未知字段的 lambda 表达式?
How do I create a lambda expression with unknown fields?
我想动态构建 lambda 表达式,以便我可以构建具有未知数量字段的查询...我该如何实现?
我正在遍历一个对象,该对象包含添加到每个字段的 Where 子句中的所有字段和值...
searcher = searcher.Where(f => f.fieldName.Contains(fieldValue));
即伪代码:
foreach(var field in fields){
searcher = searcher.Where(f => field.name.Contains(field.value));
}
如果我生活在石器时代,我会这样伪编码:
var first = true;
string query = " SELECT * FROM TABLE WHERE ";
foreach(var field in fields){
if(first){
query += field.name + " LIKE '%" + field.value + "%' ";
}else{
query += " AND " + field.name + " LIKE '%" + field.value + "%' ";
}
first = false;
}
请告诉我石器时代并不比现在的科技更强大! ;-)
希望对您有所帮助。
searcher = fields.Aggregate(searcher, (current, field) => current.Where(f => f.Name.Contains(f.Value)));
我想动态构建 lambda 表达式,以便我可以构建具有未知数量字段的查询...我该如何实现?
我正在遍历一个对象,该对象包含添加到每个字段的 Where 子句中的所有字段和值...
searcher = searcher.Where(f => f.fieldName.Contains(fieldValue));
即伪代码:
foreach(var field in fields){
searcher = searcher.Where(f => field.name.Contains(field.value));
}
如果我生活在石器时代,我会这样伪编码:
var first = true;
string query = " SELECT * FROM TABLE WHERE ";
foreach(var field in fields){
if(first){
query += field.name + " LIKE '%" + field.value + "%' ";
}else{
query += " AND " + field.name + " LIKE '%" + field.value + "%' ";
}
first = false;
}
请告诉我石器时代并不比现在的科技更强大! ;-)
希望对您有所帮助。
searcher = fields.Aggregate(searcher, (current, field) => current.Where(f => f.Name.Contains(f.Value)));