当前位置: 首页 > 编程语言 > C#

为什么“linqtosql”查询以不同于常规SQL查询的FROM关键字开头?

时间:2023-04-10 11:56:14 C#

为什么“linqtosql”查询以与常规SQL查询不同的FROM关键字开头?与常规SQL查询不同,为什么linqtosql查询以FROM关键字开头?LINQ模仿SQL中的LogicalQuery处理:8.SELECT9.DISTINCT11.TOP1.FROM2.ON3.JOIN4.WHERE5.GROUPBY6.WITHCUBE/ROLLUP7.HAVING10.ORDERBY12.OFFSET/FETCH但实际上它执行以下操作:1.FROM2.ON3.JOIN4.WHERE5.GROUPBY6.WITHCUBE/ROLLUP7.HAVING8.SELECT9.DISTINCT10.ORDERBY11.TOP12.OFFSET/FETCH许多人没有意识到这一点并犯了一些简单的错误:SELECTcolASalias_nameFROMtabWHEREaliass_name>10;并询问为什么它不起作用。因为他们认为顺序就是他们写的那样。LINQ在这方面做得更好。另请参见逻辑查询处理和BOL:SELECT语句的逻辑处理顺序以下步骤显示了SELECT语句的逻辑处理顺序或绑定顺序。此顺序确定在一个步骤中定义的对象何时可用于后续步骤中的子句。例如,如果查询处理器可以绑定(访问)FROM子句中定义的表或视图,则这些对象及其列可用于所有后续步骤。相反,因为SELECT子句是第8步,所以前面的子句不能引用该子句中定义的任何列别名或派生列。但是,它们可以被后续子句引用,例如ORDERBY子句。请注意,语句的实际物理执行由查询处理器确定,并且可能与此列表的顺序不同。FROMONJOINWHEREGROUPBYWITHCUBE或WITHROLLUPHAVINGSELECTDISTINCTORDERBYTOP可以在此处找到有关您的问题的一些文档,他们说它更类似于“foreach”。但是,这是开始和了解LINQ是什么以及不同类型的LINQ的好地方。您通常会发现以下类型的LINQ无处不在。阅读这里以上是C#学习教程:为什么“linqtosql”查询以与常规SQL查询不同的FROM关键字开头?如果分享的内容对你有用,需要了解更多C#学习教程,希望大家多多关注——LINQ(LinqtoObjects)DLINQ(LinqtoSQL)XLINQ(LinqtoXML)代表位置,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:

最新推荐
猜你喜欢