Linq 查詢 與方法呼叫

2021-07-23 08:59:43 字數 717 閱讀 4423

通常,使用linq查詢時需要乙個實現iqueryable的查詢物件

public class dataa: iqueryable
之後通過

var q = from c in new dataawhere c > 0 select new ;
進行查詢,使用iqueryprovider 收集使用者輸入的表示式進行處理。

但是查詢本身實際上只關注查詢物件上有無可用的 linqmethod(select,where.....).

如下,定義乙個泛型物件

public class data public datawhere ( expression> f)  }
只要保證data上擁有與linq方法相同的例項方法,(select,where...),

我們依然可以使用相同的 linq 語法進行查詢:

var q = from c in new dataawhere c > 0 select new ;
結論: linq 查詢語法與查詢物件的型別無關,只會檢查查詢物件上有無名稱、方法簽名一致的方法(例項方法或擴充套件方法)。

iqueryable,iqueryprovider 在linq查詢中不是必須的。

順便說一下 ,個人認為, orm中最好不要使用iqueryable 這些,容易造成方法汙染, 而且linq查詢語法是固定的,無法擴充套件或限制。

orm中最好直接使用 各種查詢方法,更加靈活一些。

收集 Linq 查詢方法收集

開始不間斷收集linq查詢使用的方法,日拱一卒,月可渡江。查詢排序取前6個 var newshops storedb.shops.orderbydescending a a.joindate take 6 tolist 查詢列表 常用用法 var order from u in storedb.or...

置頂 收集 Linq 查詢方法收集

開始不間斷收集linq查詢使用的方法,日拱一卒,月可渡江。查詢排序取前6個 var newshops storedb.shops.orderbydescending a a.joindate take 6 tolist 查詢列表 常用用法 var order from u in storedb.or...

LINQ 之 基本 LINQ 查詢操作

在 linq 查詢中,第一步是指定資料來源。像在大多數程式語言中一樣,必須先宣告變數,才能使用它。在 linq 查詢中,最先使用from子句的目的是引入資料來源和範圍變數。queryallcustomers 是 ienumerable型別 資料來源 customers 和範圍變數 cust var ...