【发布时间】:2023-03-31 16:11:01
【问题描述】:
我正在使用搜索功能,我有三个文件
示例:- 姓名、州、年龄
当我选择名称并搜索时,它应该会显示相关记录,
当我选择名称、州和搜索时,我应该显示两个选定选项都包含在记录中的记录,
如果记录没有任何选定的选项,则不应显示记录,
所以为此我应该使用 动态查询 使用 lambda 表达式
所以请发给我任何例子。
【问题讨论】:
标签: asp.net asp.net-mvc-3 linq dynamic razor
我正在使用搜索功能,我有三个文件
示例:- 姓名、州、年龄
当我选择名称并搜索时,它应该会显示相关记录,
当我选择名称、州和搜索时,我应该显示两个选定选项都包含在记录中的记录,
如果记录没有任何选定的选项,则不应显示记录,
所以为此我应该使用 动态查询 使用 lambda 表达式
所以请发给我任何例子。
【问题讨论】:
标签: asp.net asp.net-mvc-3 linq dynamic razor
你可以这样使用,利用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();
【讨论】: