想象一下JSON数组有一个键值对列表。
<search_parameter>: <value>
...
name: "John"
age:"20"
dept: "Development"
...
现在,我想根据收到的键值对动态查询员工列表。每次,我都会收到不同数量的键值对。
我有时可能会单独收到名称,有时也会收到年龄。它有时可能只是 dept 。
答案 0 :(得分:1)
在不知道细节的情况下,我会说您可以根据可用的过滤器轻松添加linq查询的谓词。
public class InputFilters
{
public string name { get; set; }
public string age { get; set; }
public string dept { get; set; }
}
让我们说变量输入有搜索参数。
然后linq将
var result = from emp in _context.Employees
select emp;
if(!string.IsNullOrEmpty(input.name))
result = result.where(e => e.name == input.name);
if(!string.IsNullOrEmpty(input.age))
result = result.where(e => e.age == input.age);
if(!string.IsNullOrEmpty(input.dept))
result = result.where(e => e.dept == input.dept);