基于JSON数组构建LINQ查询

时间:2018-04-30 18:35:38

标签: json linq

想象一下JSON数组有一个键值对列表。

 <search_parameter>: <value>
 ...
 name: "John"
 age:"20"
 dept: "Development"
 ...

现在,我想根据收到的键值对动态查询员工列表。每次,我都会收到不同数量的键值对

我有时可能会单独收到名称,有时也会收到年龄。它有时可能只是 dept

1 个答案:

答案 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);