2013-01-16 76 views
1

我使用搜索功能在此創建動態查詢我有threee的Fileds如何使用Lambda表達式

例子: - 名稱,狀態,年齡

當我選擇名稱和搜索應該顯示相關記錄,

,當我選擇名稱,狀態和搜索我應該顯示如果記錄不具有任何所選選項的這兩個選擇的選項都包括在記錄備案,

那麼它不應該顯示重新線,

所以爲了這個,我應該使用lambda表達式

所以請給我任何例子來此使用動態查詢

回答

1

您可以使用像這種情況,請使用謂詞生成器

我有相同的應用程序,你可以點擊這裏: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

+0

非常感謝,我會在這個實施我想這可能對我有幫助。無論如何,非常感謝Pranay Rana給予答覆。 – user1455879

+0

@ user1455879 - 不要忘記將upvote和標記爲已接受的答案,如果它適合你的話。 –