为什么SELECT关键字在LINQ查询的最后?
from m in myClass1
where m.myfield == value
select m
而它在SQL查询的开头呢?
select * from myTable
答案 0 :(得分:7)
这样您就可以在select
子句中获得IntelliSense。
这样,当您开始键入select
时,编译器已经知道查询中涉及的类型。
它也更自然地阅读;选择是任何查询的最后一步。
答案 1 :(得分:2)
因为这就是设计师设计它的方式。 LINQ不是SQL。
它还有助于查询格式遵循与lambda相同的流程:
myClass1.Where(m.myfield == value).Select(m => m);
答案 2 :(得分:1)
因为这是两种不同的语言:虽然看起来C#和VB.NET语言设计者看了SQL的关键词来借用语义,但他们没有采用语法“批发”,因为需要将语法融入语言在LINQ周围。
请注意,他们选择的语法对于自动完成工具很友好:在编写select
时,类的名称是已知的,让Visual Studio为您提供自动完成的属性myClass
。