2011-02-11 40 views
0

这两种查询的名称是什么?这类查询的名称和使用它们的区别是什么

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查询”什么我的名字第二个查询着,当然第二个是也“的LINQ to SQL查询”但我怎么命名的第二个查询。

请告诉我,使用它们有什么区别?

回答

3

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

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

2

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

2

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

相关问题