首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LINQ语法与SQL语法

LINQ语法与SQL语法
EN

Stack Overflow用户
提问于 2009-10-13 06:20:45
回答 4查看 1.1K关注 0票数 3

为什么安德烈斯·海尔斯伯格设计的LINQ语法不同于SQL的语法(这使得程序员学习一件全新的东西需要额外的开销)?

如果它使用与SQL相同的语法,不是更好吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-10-13 06:32:36

LINQ不应该是SQL。它应该是一种尽可能独立于数据源的查询语言。现在无可否认,它有很强的SQL偏好,但它并不意味着只是将SQL嵌入到源代码中(幸运的是)。

就我个人而言,我更喜欢LINQ的语法而不是SQL的语法,尤其是在LINQ中,排序更符合逻辑。只需查看查询子句的顺序,就可以看到处理查询的逻辑顺序。你从一个数据源开始,可能会做一些过滤,排序等,通常以投影或分组结束。这与SQL相比,在SQL中,您一开始就说出您感兴趣的列,甚至还不知道您正在谈论的是哪个表。

LINQ不仅在这方面更符合逻辑,而且它允许工具更好地与您一起工作-如果Visual Studio知道您从什么数据开始,那么当您开始编写select子句时(例如),它可以帮助您使用IntelliSense。此外,它允许使用扩展方法相对简单地将LINQ查询表达式转换为“点表示法”,而不必让编译器知道查询实际要做什么的任何细节。

所以从我的角度来看:不,如果LINQ一味地遵循SQL的语法,它会更糟糕。

票数 21
EN

Stack Overflow用户

发布于 2009-10-13 06:28:49

首先,选择您喜欢的SQL --有几种!(T-、PL-等)。

归根结底,两者既有相似之处,也有不同之处。LINQ的许多变化更有意义--例如,在尝试过滤(WHERE) /投影(SELECT)之前选择源(FROM),允许更好的静态分析等(包括智能感知),以及更自然的查询理解语法。这对开发人员和编译器都有帮助,所以我很高兴。

票数 5
EN

Stack Overflow用户

发布于 2009-10-13 06:24:51

当表达式的开头提供初始数据时,解析表达式会更简单。

正因为如此,VS甚至为部分编写的LINQ查询提供了代码完成功能(IMO的强大功能)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1558465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档