我正在嘗試將Linq查詢作爲字符串發送到在where子句中使用的方法。由於IEnumerable不適用於此,所以我已將IEnumerable轉換爲IQueryable,但仍會引發錯誤。以下是代碼:如何在linq where子句中使用字符串?
public static void FilterData(string Query)
{
if((List<MemberMaintenanceData>)HttpContext.Current.Session["Allmembers"] != null)
{
//Get the IEnumerable object colection from session
var data = (List<MemberMaintenanceData>) HttpContext.Current.Session["Allmembers"];
//Convert it to IQueryable
IQueryable<MemberMaintenanceData> queryData = data.AsQueryable();
//This line doesn't compile!!
queryData = queryData.Where(Query);
HttpContext.Current.Session["Allmembers"] = queryData.AsEnumerable().ToList();
}
}
我打算通過 「A => a.AccountId == 1000」 爲查詢
動態linq庫只適用於整數,而不是字符串,或至少我沒有看到任何使用字符串的示例。關於這個主題有很多文章和博客,所有這些文章都以整數爲例!我必須查詢的AccountId是一個字符串。 – user466663 2012-03-13 15:54:35
我不確定你的意思是「只適用於整數而不是字符串」。如果您查看動態查詢語言的文檔,您會發現它適用於任何類型 - 不僅僅是整數。在我建議的鏈接頂部附近的API documetnation屏幕截圖中,它顯示了使用字符串的示例。我更新了我的答案,以表明這一點。 – 2012-03-15 08:30:29