通常,使用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 ...