-3

我有一个大问题一直困扰着我很长时间,而且我似乎无法在任何地方得到一个直接的答案,我相信如果有人能以权威和好的例子回答这个问题,它不仅会有所帮助我可是成千上万的开发者来了。我只想知道以下概念的特点是什么,它们之间有什么区别

林克

LINQ转SQL

Linq 到实体

Linq 到对象

Lambda 表达式

另外,特别是,有人能告诉我们这些结构属于上述类别吗?

构造 1

var result = from n in nums
             where n < 5
             orderby n
             select n;

构造 2

Entities.Person.Where(p => p.FirstName == "John").First();

热切期待您学到的澄清。

4

1 回答 1

3

我敢肯定这里有一些过度简化,但值得:

Linq是为处理数据集而设计的 API。IQueryable,例如,来自System.Linq命名空间。Linq to ...是不同的实现,它们解析相同的 Linq 指令以根据数据的存储方式执行不同的操作。因此,Linq to SQL将解析您的.Where指令以生成带有WHERE子句的 sql 查询,而Linq to Objects将采用相同的指令并生成foreach.

lambda 表达式几乎是匿名委托的简写。您可以通过运算符识别 lambda =>。您的参数列表在左侧=>,可以访问这些参数并可选择返回结果的表达式在右侧。

您的两个代码示例是可以编写 Linq 查询的不同语法。它们分别称为查询语法和方法语法。

于 2012-06-27T10:09:56.563 回答