2009-07-15 111 views
6

我只想知道Select * from TableName的lambda表達式是什麼。 像在純LINQ中一樣,它將是var res=from s in db.StudentDatas select s; 這裏StudentData是表格的名稱。從TableName中選擇*的Lambda表達式

謝謝。

+1

Lambda表達式是匿名函數,而不是查詢。他們被用作查詢的一部分,雖然... – 2009-07-15 13:10:31

+5

爲什麼像這樣的問題得到downvoted,當一個簡單的解釋就足夠了? – 2009-07-15 13:11:12

+2

@羅伯特哈維:因爲我們生活在仇恨的世界 – 2009-07-15 13:15:17

回答

12

Lambda表達式:

var res = db.StudentDatas; 

你可以使用一個,但是這將是毫無意義:

var res = db.StudentDatas.Select(s => s); 
1

您不需要lambda表達式。你只需要收集所有成員。

3

編譯器將其轉換沿着這些路線的東西:

db.StudentDatas.Select(s => s) 

的轉換爲SQL由基類庫來完成。 SQL,當然,不使用lambda表達式...不需要

0

儘管兩者在技術上都是正確的,但它們都會以簡單化的形式給出相同的結果,這僅僅是因爲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);

發現了幾個咬指甲會議後艱辛的道路。

-2

代碼:

var allmember = eg_.table.where(x=>x).ToList();