我嘗試了一些使用LINQ動態查詢的方法 - LINQKit和 LINQ動態查詢庫。我不喜歡第二個,因爲它會殺死LINQ的想法 - 能夠在編譯時檢查查詢。而對於LINQKit,我沒有爲我的場景找到一個好例子。我也不喜歡過度使用反射。LINQ和帶有分頁和LINQ2SQL的動態查詢
我的場景如下。我有一個正在做業務邏輯和DAL邏輯的Web服務。 webforms應用程序是分開的。我有一些網頁帶有用戶想要過濾的每個字段的複選框,還有一個用於輸入每個過濾器值的文本框。我的web服務有一個方法GetByFilter,我通過一些List。 QueryObject是一個包含字符串:filedName,object:fieldValue的類。
然後我的webservice接收查詢對象列表,現在出現了一個大問題:如果字段數和過濾器值可能會有所不同,如何將其轉換爲LINQ查詢?
更糟的是 - 我不使用LINQ2SQL,但我用倉庫一些自定義DAL如果需要的話可以返回IQUERY(像這樣的: http://msdn.microsoft.com/en-us/magazine/dd569757.aspx 滾動到庫)。
我知道我可以使用尋呼與LINQ2SQL: VAR PagedData = query.Skip((iPageNum - 1)* iPageSize)。取(iPageSize);
那麼我怎麼能從LINQ到我的底層DAL實現中獲得動態查詢參數(以及iPageNum和iPageSize),以便以特定數據提供者的方式執行這些查詢?也許我必須實現我的DAL作爲一些LINQ數據提供者(我不知道該怎麼做)?
問題是 - 我不想依賴於LINQ2SQL(然後我可以將我的Repositories作爲LINQ2SQL的包裝器來實現),但是同時我想在我的DAL外部的任何地方都有LINQ查詢功能。可能嗎?
感謝的,事實證明,自定義數據提供者不像我想的那麼複雜。 – JustAMartin 2009-11-26 11:42:47