考慮一個簡單的Employee類。從參數構建LINQ查詢
Class Employee
{
public String FirstName {get; set;}
public int Id {get; set;}
public int Marks {get; set;}
public String LastName {get; set;}
}
因此,對於通過LINQ查詢進行選擇,我們可以編寫。
var query = Employee.Where(i => i.Id > 2).OrderBy(i => i.Marks);
所以我們可以創建一個函數,它需要2個參數,我們可以發送Id和Marks。 因此,我可以做一個函數調用並傳遞參數,我需要什麼。
var query = Employee.Where(i => i.Marks > 2).OrderBy(i => i.FirstName);
樣品尋找功能,我們可以通過任何參數
Public String GetQuery(String para1,String para2,......)
{
var query = Employee.Where(i => i.para1 > 2).OrderBy(i => i.para2);
return query;
}
or
Public String GetQuery(String para1,String para2,......)
{
String str1=para1...... // with some format included
String str2=para2...... // with some format included
var query = Employee.Where(str1).OrderBy(str2);
return query;
}
的概念是,我想創建一個公共(通用)的查詢中,我可以選擇的值傳遞任何類型的參數的 。
因此..你想採取一種乾淨的,可組合的,強類型的方法,並把它變成一個弱的,不可組合的,基於字符串的方法......爲什麼? –
不完全我只是想要一個泛型類型。喜歡假設我想要獲得一個按列名稱的行,所以在參數我可以傳遞上下文和列,並獲得所需的值 – Padmalochan
它是如何知道該列是什麼類型或什麼樣的比較表達式,你想對它做... .. 。?你最好直接編寫一個LINQ表達式,因爲調用者知道字段,類型和比較。 –