例如,为什么要在LINQ中执行此操作
var products = from p in Products
select p.Name;
Run Code Online (Sandbox Code Playgroud)
什么时候他们可以做到这一点:
var products = select p.Name from Products p;
Run Code Online (Sandbox Code Playgroud)
第二个是否在linq中提供了一些限制?也许上面的例子太简单了,实际上看不出为什么linq是按一个顺序编写而sql是用另一个编写的.
peS*_*HIr 26
因为LINQ不是SQL.LINQ由许多链式扩展方法组成IEnumerable<T>
(当您使用System.Linq
命名空间时).SQL like语法只是一种编译器技巧,可以在这些查询方法的链上启用一些语法糖,因此看起来你可以使用类似.NET语言中的SQL的查询.LINQ基本上与SQL本身无关......
Tam*_*ege 25
因为为了使Visual Studio中的Intellisense与LINQ一起工作,它需要首先知道表,以便编辑器可以为程序员提供可供选择的列列表.如果以SQL方式执行,首先选择列,编辑器无法真正帮助您,因为它不知道要查看哪些表.
Jon*_*eet 19
暂且不谈IntelliSense,查询表达式扩展等(这都是有效的理由),我实际上相信LINQ方式更有意义.
您从数据源开始.您应用过滤器,订购等.您完成投影.换句话说,查询是按逻辑操作顺序编写的.
换句话说:为什么SQL设计师选择以这种方式订购SQL查询呢?
Intellisense通常被认为是一个原因,但我认为更好的解释是Select逻辑发生在查询编写过程的最后.首先设置数据源,然后进行过滤和分组,然后在完成所有操作后,指定要删除的内容.