那些喜欢用LINQ的是不是因为数据库SQL学的不好甚至没学过?LINQ能做的有什么东西SQL做不了?如果都用LINQ,那传说中的DBA都可以下岗了,欢迎讨论

解决方案 »

  1.   

    linq只是快速开发的一种过度产品。但是回linq的一般sql都很厉害。。快速懂否?
    过度产品懂否?
    linq 为什么还是ORM框架的一部分?
    存在必然有原因
      

  2.   

    还真得系统学一下linq  还是很重要的!!
      

  3.   

    请问LINQ哪里比SQL开发快呢?能否举例?回linq的一般sql都很厉害。。这个结论是如何得到的?
      

  4.   

    如果我说我从LINQ中受益最的是LINQ to Objects,而不是LINQ to SQL或者LINQ to Entity,你信吗?Lambda与LINQ都只是.NET给我们提供的好工具,而数据库支持只是LINQ中很小的一部分,为什么还要纠结呢?仅举一个很小的例子,取2个集合的交集。以往自己写要多少代码,现在用LINQ就是一句话的事,代码简洁了,而且能把更多的精力从自己实现查询、排序上抽出来,放在业务规则和逻辑的设计上,有什么不好呢?
      

  5.   

    linq 开发速度快,有些方法封装的运行速度比从网上找的运行速度要快的多!而且缓存也挺强大的。。
    而且sql你不会。linq 你也够呛吧!!我是那么认为的!
      

  6.   

    喜欢用SQL的但又想有Linq开发的便利性、智能提示的,可以试试PDF.NET框架的OQL,详细见http://topic.csdn.net/u/20110906/13/213226f9-3880-481b-b4a0-ecc29774e9b9.html
      

  7.   

    "那些喜欢用LINQ的是不是因为数据库SQL学的不好甚至没学过?"
    请问楼主这个结论又是怎么得到的呢?
    看到楼主有4个三角符号,我不禁有点怀疑,这是楼主自己么?
      

  8.   

    我确实是sql不好 我确实喜欢用linq
      

  9.   

    例如很多简单的操作。当然linq能解决sql的90%的功能,
    那个10%还是需要sql自己解决话说楼主敢发这个帖子就说明楼主对linq和sql都有一定的了解如果sql的的最基本的几个机制都不明白 他能学linq么?linq的基础是sql
    即使是程序也要把linq给。楼主这么冰雪聪明应该懂的试问下 如果不懂数据库的人去学习linq 那么在学习的时候他怎么都要学一些sql
    当他发现的sql的好处的时候自然就知道linq的有点和sql的优点
    自然而然的结合使用
    结合使用的后果就是 成为很多dba高手中的一员。我指的高手一员是sql server的
      

  10.   

    那些喜欢用LINQ的是不是因为数据库SQL学的不好甚至没学过?
    你是否发现这里用的是问号放在这里呢?目的就是喜欢大家讨论,因为曾经有个国企的项目经理说SQL是垃圾,LINQ才是好东西,所以我放的是问号,并没有因此下结论,4个三角符号很正常,不需要怀疑
      

  11.   

    我只能说lz无知者无畏。LINQ是语言内置查询,哪里和数据库有关了?风马牛不相干的2个东西怎么比较?我来说一些LINQ能做的情景:(1)窗口上有10个文本框,现在要判断是否有空的,没有输入的,用LINQ做:bool isempty = this.Controls.Cast<Control>().Where(x => x is Form).Select(x => x as Form).Any(x => x.Text == "");(2)判断用户输入的10个数字是否重复:
    bool result = userinput.Disinct().Count() == userinput.Count();(3)对一个内存中的List排序:
    var orderedlist = source.OrderBy(x => x.Name);(4)在0-10中随机选取3个数字,而且这三个数字不能重复:
    int[] result = Enumerable.Range(0, 10)
        .Select(x => new { k = Guid.NewGuid(), v = x }).ToList()
        .OrderBy(x => x.k).Take(3).Select(x => x.v).ToArray();这些和数据库有关么?
      

  12.   


    第一个问题,我觉得没有什么可讨论的。你可以把问题反过来问自己一下,既然都可以达到目的,人家为什么喜欢使用Linq呢?对于第二个问题,我觉得这是你说的。一般的对数据库增删改查简单操作的软件项目,要招聘什么DBA人员?纯粹是站着茅坑不拉屎。不要低估了程序员优化sql代码的能力。
      

  13.   

    一个C#程序员和我说他不会LINQ也不用LINQ,那我觉得他根本不配说自己会C#。因为LINQ是C#最基本的语法和基本库。如同一个程序员说他只用for循环而不会foreach以及while循环一样可笑。
      

  14.   

    你这个是伪命题,因为LINQ To SQL也好,其他也好,LINQ不是数据库,LINQ访问数据库肯定功能超不过数据库本身,效率肯定低于数据库本身。这是显而易见的。如同你去银行办事,你的所有请求都是柜台业务员处理的,你现在问有什么你能办到,柜台业务员办不到的,这是一句废话。
      

  15.   

    如果针对操作数据库来说的,你不用拿LINQ比实际上你拿C#去比,拿ADO.NET去比,拿Java JDBC去比,拿Hibernate去比,拿C++去比,拿任何东西去比,你得出的结论都是,没有什么数据库不能做的,而这些能做的。因此你得出结论,根本不需要什么编程语言和程序员,DBA胜任一切。也不需要什么软件,大家直接查询就可以了。
      

  16.   

    面向对象时代,SQL语句这种东西应该被淘汰出局的
      

  17.   

    感觉Linq有的时候能方便一下,比如说对集合操作
      

  18.   

    。这个结论下得很
    linq会点。。但是没在项目用过。
      

  19.   

    你应该说LINQ TO SQL非LINQ
      

  20.   

    会不会Linq不决定你的项目程序能否写出来,最多最多就是也许能快一点点写出来,也许写出来的代码更少更易读,如果你不懂装封的话。
      

  21.   


    linQ 的话,占用服务器资源比较大..你懂的..
      

  22.   

    那些喜欢用LINQ的是不是因为数据库SQL学的不好甚至没学过?
    能否推理出LZ是LINQ学的不好甚至没学过
      

  23.   


    幸好我都会,不然看完这个帖子心会拔凉拔凉的说句实话其实我更喜欢LINQ编程,怎一个方便了得,LINQ应该更加趋向未来的编程方式,更加简便。而LINQ对于楼上所说的占用服务器资源比较大,这些弊病随着时代的进步,完全是可以得到解决的,但是目前,LINQ还不能成为主流,只能做一些相对简单的项目
      

  24.   

    那些认为linq=sql的,请仔细去看看linq吧,懒得说了,linq最有用的根本不是sql那块
      

  25.   

    Linq to sql 只是Linq的很小的一部分吧。linq的优势在于其扩展性,linq家族还在不断壮大中
      

  26.   


    的确和数据库没有半毛钱的关系,
    如果楼主你的SQL只是简单  select,update,Insert。那么你肯定觉得LINQ完全能取代SQL。
    因为你觉得你不用写SQL代码,直接调用内置的方法就行。如果你做的项目业务逻辑非常复杂,经常碰到4,5张表的联合查询,
    比如什么行转列的操作,乱七八糟的多了去了。
    你就会发现这些只能用SQL来做,而且在数据量大的情况下性能,速度上根本不是一个档次上的。
    而且 DBA的工作,据我所知根本就不关心写存储过程,SQL语句啥的,写的话也只是调试代码而已。
    DBA的工作往往是数据库结构设计,索引设计,解决查询速度瓶颈问题。
    这些都是基本,还要对硬件有所了解。总之楼主你的考虑的问题是多余,要像做一名牛叉的技术人员,这两样你必须都要会,而且是最基础的,
    这两样没有可比性,谁也代替不了谁。
      

  27.   

    用了linq可以直接插入数据到表,不用拼sql语句,读取时候更不用把结果自己转化为实体。
      

  28.   

    关联很多表来查询,写出复杂无比的SQL语句,这就是“面向表开发”的恶果,这样的SQL语句,没有几个人能够看懂,根本没法维护;
    但如果采用领域驱动设计(DDD),根本不会存在这样的问题,复杂的查询是遇不到的,因为很多时候都仅仅需要单表查询,甚至查询都不需要,你说哪个效率高?
      

  29.   

    --!这标准...俺不是程序员了,没用过linq的飘过~  不是觉得不好,是还没有机会用!
      

  30.   

    两个DataTable让你做SQL查询,你不用LINQ?
      

  31.   

    +1 .net2.0环境下的程序员飘过..
      

  32.   

    个人觉得对网站开发来说LINQ就是复杂包装过的垃圾,屁用没用。LINQ爱好者轻点喷啊。
      

  33.   

    LINQ TO objects还是很不错滴
    喜欢"方法链"式的LINQ风格,不喜欢SQL风格的LINQ写法
      

  34.   

    很多人都答非所问,我回楼主:不是的。答完了,我再补充一句,linq to sql 使开发起来更方便
      

  35.   

    SQL是使用LINQ的基础,否则LINQ使用起来会很痛苦,不知志云。
      

  36.   

    SQL 20分钟做好的事情 LINQ  1分钟 你选哪个?SQL 1分钟能查出来的东西 LINQ 要20分钟 你选哪个?
      

  37.   

    楼主的意思只是针对linq to sql的吧。不过这方面我也没用过,一直都是靠sql语句实现的。但很多时候需要对IList<Model>操作查询linq还是很方便的,另外XML文档的搜索我也很喜欢用Linq。选择性的使用吧。
      

  38.   

    我也觉得它对 ‘集合’的贡献要比 SQL的重要的多,呵呵
      

  39.   

    楼主指的是linq to sql和sql之间。我学过一段时间linq,感觉针对sql方面,linq肯定是没有sql本身强。
    但MS推出linq to sql技术是为那些对sql不熟或者不会的程序员提供的一种快速开发技术。楼上各位的意见都看过了,有个星星比较多的高手提出个观点是:我觉得这样说有点过了,linq也只是一种技术,并不是每个人都必须都得掌握。
    每个人都有各自的编写习惯,和技术使用手段。
    不能说不会某种技术就下断言说其不会这种语言。可以说每一种技术的出现都有它必然存在的道理。
    楼主没必要在这个上纠结。
      

  40.   

    什么啊
    你的意思是这个世上开发软件只能用.net
    asp的不活了?php的不知了?java的不活了?
      

  41.   

    linq客观上降低了,开发人员学习数据库的门槛。这是显然的。
      

  42.   

    同意
    为什么一说LINQ就要和sql扯上呢?要么就准确点说LINQ TO SQL。LINQ to Objects、XML很方便、很好。
      

  43.   

    LINQ是C#的一部分,不用LINQ就说明不会C#?那我是否可以理解为一个人如果说他不会做饭也不用做饭,那他就不配说自己是人了?
      

  44.   

    用linq是不需要构建太多的数据库访问对象,查询起数据库来更快捷。
    不过要临时从数据库生成表的话,在用vs写个程序未免太迟钝了。
      

  45.   


    linq不止可以操作数据库 也可以操作数据集合等    
      

  46.   

    除非关系型数据库被淘汰,否则象LINQ这些ORM的东西,一律多余,脱了裤子放屁的东西。
      

  47.   

    进来看了这么久学习了,linq在一些项目中能加快开发速度那是显而易见的,只要原理懂用那种工具就看工程的需要
      

  48.   

    linq 就是为了  操作内存表 减少 数据库访问,我是这样理解的
      

  49.   

    :) 开眼界了 C#我不是很熟 没想到还能这样使用 优雅跟ruby有得一比了
      

  50.   

    ......我还是喜欢用Linq to Ojbect 和Linq to Entity……其实在我看来Linq我更喜欢使用 表达式树很多时候会减少很多硬编码……
      

  51.   

    Linq比较消耗服务器资源,这样下来不好。
    不过,几年之后,SSD以及超线程CPU普及之后,Linq会好些
      

  52.   

    完全不懂sql的人根本不可能会用Linq,用Linq不是因为不懂sql,而是Linq有自己的优势,如编译时错误检查、智能感知、面向对象、代码易调试、可读性及扩展性强等等,用Linq比直接写sql语句开发速度更快。http://www.webdiyer.com/
      

  53.   

    C#可以做一台计算机能做的所有事。当然了,这是理论上的。但是,有一个开源的项目,使用 Java 和纯粹的 JRE 环境,实现了对 x86 的模拟,从实践中给出了这种可能性。