1

我正在使用搜索功能,我有三个文件

示例:- 姓名、州、年龄

当我选择名称并搜索时,它应该显示相关记录,

当我选择名称、状态和搜索时,我应该显示两个选定选项都包含在记录中的记录,

如果记录没有任何选定的选项,则不应显示记录,

所以为此我应该使用lambda 表达式的动态查询

所以请给我任何例子。

4

1 回答 1

1

你可以这样使用,利用Predicate Builder

我有相同的应用程序,您可以在此处查看:使用 Linq 进行动态查询

   var predicate = PredicateBuilder.True<employee>();

    if(!string.IsNullOrEmpty(txtAddress.Text))
        predicate = predicate.And(e1 => e1.Address.Contains(txtAddress.Text));
    if (!string.IsNullOrEmpty(txtEmpId.Text))
        predicate = predicate.And(e1 => e1.Id == Convert.ToInt32(txtEmpId.Text));
    if (!string.IsNullOrEmpty(txtDesc.Text))
        predicate = predicate.And(e1 => e1.Desc.Contains(txtDesc.Text));
    if (!string.IsNullOrEmpty(txtName.Text))
        predicate = predicate.And(e1 => e1.Name.Contains(txtName.Text));

    EmployeeDataContext edb= new EmployeeDataContext();
    var emp = edb.Employees.Where(predicate);
    grdEmployee.DataSource = emp.ToList();
    grdEmployee.DataBind();

动态组合表达式谓词

于 2013-01-16T10:30:57.347 回答