先学习LINQ再学习SQL是一个好主意吗?

6

我知道在大多数情况下,学习更复杂的技术/语言然后再学习简单的技术/语言比反过来更有用。
但是,实际上,完成大学任务的时间是有限的。如果我先学习LINQ,然后再学习SQL,那么使用和学习SQL会很难吗?
编辑
我需要做的任务是与数据库一起工作并从中获取一些数据,因此问题几乎关于LINQ to SQL。


关于编辑 - 那就说出来吧 ;-p - Marc Gravell
重点是我不想一辈子只局限于C#和.NET平台,虽然这很可能是我的职业选择,但我还想了解更多。 - chester89
1
嗯,SQL(如TSQL等变体)确实是无处不在的。LINQ是.NET特定的。但是你需要决定短期(通过课程)和长期(职业生涯)哪个更重要。它们可能不同 - 但哪个更紧迫? - Marc Gravell
但是如果StackOverflow的大多数意见告诉我先学习SQL,那么我很有可能会选择使用它而不是LINQ,因为时间限制并不是我考虑的主要因素 - 正确的做事方式才是最重要的。没有其他的东西。 - chester89
我明白你的意思。学习C++不仅可以掌握编程语言,还能更好地理解程序“幕后”的工作原理。而.NET/Java只能让你获得一些框架知识,无法深入了解程序的内部运行机制。另外,不用担心LINQ,它非常简单,看看例子,在这里提问,你就能掌握它了。 - User
显示剩余4条评论
6个回答

20

这是个不好的想法。

如果今天的大学教授的是LINQ而非为你打下知识基础,我只能为他们的学生感到遗憾和同情。

时间总是有限的,不要把它浪费在那些随时会发生变化的事情上。

SQL永远都在,但LINQ呢?谁知道呢。

SQL可以应用于任何地方,而LINQ只能在.NET世界中使用。

无论是LINQ还是其他的技术,只要你掌握了SQL的知识,学习起来就会轻而易举,只需要几个小时/几天/几周,而不会更长。


这怎么会冒犯人呢?这是事实啊!我是LINQ迷,对于实体和LINQ的未来已经有过很多讨论了。一般的SQL知识会更有用。 - mmcdole
大学并不教我们LINQ,他们只想让我们完成工作而已。因此,我们选择的技术完全取决于我们的知识、选择和偏好。LINQ只是我不深入学习SQL的替代方案。 - chester89

9
好的,这两个东西非常不同。LINQ(从本质上讲)实际上与数据库没有任何关系 - 它可以轻松地与内存对象、Web服务等一起使用。
如果您主要想编写更好的.NET代码,则应学习LINQ - 但是要彻底地学习它 - 例如,可以选择C# in Depth,该书在最后几章中很好地介绍了它。
如果您想了解数据库,则当然:学习SQL(如TSQL)- 但要了解差异。如果您需要编写企业软件,则数据库很好,但如果您只想执行简单任务,则不一定需要。
如果您只是将简单数据输入和输出数据库,则可能不需要了解SQL。只需使用LINQ-to-SQL(或其他工具),让ORM工具处理即可。

4

SQL是一个标准,学习这个标准。

更精确地说:

  • 学习数据库理论

  • 学习CODD代数

  • 然后选择一个“通用数据库”,完成一些教程...

我个人非常喜欢PostgreSQL的教程


我不知道SQL92、SQL99、SQL2003、SQL2008之间的区别,但对于初学者来说,我认为这并不重要。 - chburd

4

先学习SQL,再学LINQ。

这样你就能理解LINQ-to-SQL背后的工作原理,但也足够了解当LINQ无法满足需求时如何应对。


1
我认为,如果你没有 SQL 知识,就无法有效地使用 LINQ。如果你至少不理解以下内容,那么你无法以任何方式有效地查询数据库:
select
insert
delete
update
joins
group by
boolean algebra
relational theory
set theory

学习SQL会给你所需的概念,即使你后来使用LINQ。

1

SQL。不过你可以试试linq pad ,它是一个免费软件,并且会发现LINQ是SQL和C#之间的不错结合


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接