我只想知道Select * from TableName
的lambda表達式是什麼。 像在純LINQ中一樣,它將是var res=from s in db.StudentDatas select s
; 這裏StudentData
是表格的名稱。從TableName中選擇*的Lambda表達式
謝謝。
我只想知道Select * from TableName
的lambda表達式是什麼。 像在純LINQ中一樣,它將是var res=from s in db.StudentDatas select s
; 這裏StudentData
是表格的名稱。從TableName中選擇*的Lambda表達式
謝謝。
Lambda表達式:
var res = db.StudentDatas;
你可以使用一個,但是這將是毫無意義:
var res = db.StudentDatas.Select(s => s);
您不需要lambda表達式。你只需要收集所有成員。
編譯器將其轉換沿着這些路線的東西:
db.StudentDatas.Select(s => s)
的轉換爲SQL由基類庫來完成。 SQL,當然,不使用lambda表達式...不需要
儘管兩者在技術上都是正確的,但它們都會以簡單化的形式給出相同的結果,這僅僅是因爲db.table
的默認行爲是「選擇」。在幕後,他們是不同的。一個是System.Data.Linq.Table
,另一個是System.Linq.IQuerable
。 例如
var x = db.table ; var y= db.table(s=>s);
X = y;
會導致編譯器錯誤。
使用動態Linq庫時,如果必須在運行時創建動態查詢,則必須使用IQuerable
作爲初始選擇。這意味着var qry = db.table(s=>s);
相對於VAR qry = db.table;
然後你可以去和你的連鎖查詢:qry = qry.Where(bla bla bla);
發現了幾個咬指甲會議後艱辛的道路。
代碼:
var allmember = eg_.table.where(x=>x).ToList();
Lambda表達式是匿名函數,而不是查詢。他們被用作查詢的一部分,雖然... – 2009-07-15 13:10:31
爲什麼像這樣的問題得到downvoted,當一個簡單的解釋就足夠了? – 2009-07-15 13:11:12
@羅伯特哈維:因爲我們生活在仇恨的世界 – 2009-07-15 13:15:17