我正在使用通用的OData提供程序來對付我們在此處定製的數據提供程序。這是完全動態的,因爲我查詢它知道的表的數據提供者。基於OData示例代碼,我有一個基本的存儲結構。針對動態對象運行現有的LINQ查詢(DataTable like)
我的問題是:OData支持查詢並期望我提交一個IQueryable實現。在lowe rside上,我沒有任何查詢支持。不是一個笑話 - 提供程序返回表並且不支持WHERE子句。表現並不是問題 - 表格很小。可以在OData提供程序中對它們進行排序。
我的主要問題是這樣的。
- 我提交一條SQL語句來獲取表的數據。其結果是某種ADO.NET數據讀取器在這裏。
- 我需要爲這些數據公開一個IQueryable實現,以便稍後進行過濾。
任何ide ahow最好的接觸呢?僅限.NET 3.5(計劃一段時間沒有4.0)。我正在認真考慮爲每個表創建動態的DTO類(發送字節碼),所以我可以使用標準的LINQ。現在,我爲每個條目使用一個字典(不是太高效),但是我沒有看到根據它們進行過濾/排序的真正方法。
如果您沒有對象(或結構體)來詢問謂詞,您希望如何使用過濾。 據我所見你需要提供IQuerable的實現。以便將表達式轉換爲過濾結果集的代表。 – luckyluke 2010-03-22 09:14:30
從技術上講,我完全沒問題,暫時不運行任何過濾並忽略它;)有許多基本上用於填充下拉列表的表格 - 以及一些在邏輯中進行過濾的「存儲過程」無論如何。 – TomTom 2010-03-22 09:36:47