【问题标题】:how to create dynamic query using Lambda expression如何使用 Lambda 表达式创建动态查询
【发布时间】:2023-03-31 16:11:01
【问题描述】:

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

示例:- 姓名、州、年龄

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

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

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

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

所以请发给我任何例子。

【问题讨论】:

    标签: asp.net asp.net-mvc-3 linq dynamic razor


    【解决方案1】:

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

    我有同样的应用程序,你可以在这里查看:Dynamic query with 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();
    

    Dynamically Composing Expression Predicates

    【讨论】:

    • 非常感谢,我将在此实施,我认为这可能对我有所帮助。无论如何,非常感谢 Pranay Rana 的回复。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-18
    • 1970-01-01
    相关资源
    最近更新 更多