这种查询的名称是什么,使用它们之间的区别

时间:2011-02-11 11:12:06

标签: c# sql linq

这两种查询的名称是什么?

return (from c in _dbRead.Domain
                where c.ID == ID
                select c).FirstOrDefault();

return _dbRead.Domain.Where(x => x.ID == ID).FirstOrDefault();

我的意思是让我说我​​把第一个称为“linq to sql query”我将第二个查询命名为什么,当然第二个也是“linq to sql query”但是我将第二个查询命名为什么。

请告诉我,使用它们之间的区别是什么?

3 个答案:

答案 0 :(得分:3)

第一个使用查询表达式语法,而第二个使用方法语法。

它们实际上是相同的:编译器将第一个版本转换为第二个版本(您可以在Jon Skeet的part 41系列的Edulinq中阅读有关此转换过程的更多信息)。两者之间没有语义或性能差异。

答案 1 :(得分:2)

具体的

x => x.ID == ID称为 lambda表达式。除此之外,此类查询没有特殊名称。

答案 2 :(得分:2)

第一个版本使用查询理解语法,而第二个版本使用扩展方法。它们都是LINQ的形式。