2009-07-15 69 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();