LINQ(語言集合查詢)疑問和理解

最近的項目一直和linq打交道,用是好用,就是很多地方的概念很模糊,不明確

(1)

var q = from p in _dbcontext._tableName

            select p;   //選擇_tableName表中的所有字段

其中q是IQueryable類型,在這個表達式中“ from p in _dbcontext._tableName”是lambda表達式?將其轉換爲sql語句?IQueryable是sql選擇出來的結果,這個時候還沒有訪問數據庫

 

如果用q.toList()等方法轉爲具體的對象的時候,就會查詢數據庫了,這個時候纔可能出現異常等情況。不知道lambda表達式是不是在這個時候轉換爲sql語句的?

(2)

var q = _dbcontext._tableName.SingleOrDefault(p=>p.Id = id);

這個時候雖然q類型前面仍然用var,但是其實q是一個tableName對象。“p=>p.Id = id”這個表達式其實傳遞了IQueryable對象給SingleOrDefault函數

 

哎,限制太多,沒心思寫了,亂糟糟的~

發佈了46 篇原創文章 · 獲贊 6 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章