【问题标题】:Is LinqToSQL the same as Linq?LinqToSQL 和 Linq 一样吗?
【发布时间】:2010-10-16 09:38:53
【问题描述】:

我刚刚读到有关 Linq to SQL 已停产的消息。有一段时间我完全推迟了学习 Linq。即使在 asp.net 上,当我上次检查时,他们的数据访问教程也在使用表适配器和 bll 类。然后是 linq 教程。现在我已经阅读了这篇文章并且实体框架是新的发展方向,这是否意味着我已经阅读了一年半的所有 Linq“东西”,它有多棒等等,就是这一切刚走了?似乎从来没有人决定以正确的方式做事,或者至少是一些使用 MS 产品的标准方式。而且我明白你不能说一种方法对所有事情都是正确的。但是,在这种特殊情况下,我不明白为什么不能对数据访问进行一些解决。

或者,Linq To SQL 只是 Linq 的 ORM 部分吗?如果我想使用 ORM,我现在究竟会学到什么?我在 StackOverflow 上阅读了几篇文章,但没有一篇能真正帮助我知道该怎么做。

似乎 nHibernate 可能比 Microsoft 的任何选择都要好。是的,我知道还有其他人(亚音速,以及在各种 SO 问题中提到的其他人。)

谢谢。

【问题讨论】:

    标签: linq nhibernate orm data-access


    【解决方案1】:

    Linq to sql 只是众多 linq 提供程序之一(有 linq to db4o、linq to starcounter、linq to objects、linq to ado 等等)。实体框架有自己的 linq 提供者,称为 linq to enteties。您阅读 linq 的这一年并没有丢失。

    【讨论】:

      【解决方案2】:

      LINQ 是一个用于处理数据序列的库。它非常棒。 这些数据序列可以是任何实现 IEnumerable 的数据,也可以是适配器提供的任何序列。

      Linq to SQL 是一个适配器,它允许 SQL 数据库提供与 LINQ 兼容的数据序列。

      还有一个 Linq to XML,它是一个适配器,可让您将 XML 文档视为数据序列,从而允许 LINQ 对其进行处理。

      LINQ 只是一种查询语言,它非常擅长它的功能。它与数据库或 SQL 无关。为了能够轻松处理内存中的集合,绝对值得学习。

      【讨论】:

        【解决方案3】:

        没有。

        LINQ to SQL 构建在 LINQ 之上,这是 .NET 3.5 Framework 中添加的基本语言功能之一。

        从技术上讲,其他 ORM 可以实现自己的 LINQ 系统,例如,NHibernate 已经有了 LINQ to NHibernate。这是在框架中提供的之上,例如 LINQ to XML、LINQ to Objects 等。

        【讨论】:

        • 提供者数量多得离谱,包括 LINQ to Twitter 等。我敢说这些对那里的人很有用。 :)
        • LINQ to Twitter?!我应该去找那个。 :P
        • codeplex.com/LinqToTwitter sigh - 我刚刚死在里面。 ;)
        【解决方案4】:

        实体框架当然并不意味着 LINQ 会消失 - 实体框架本身就是一个 LINQ 提供者!

        LINQ 是一个完整的技术集合,不仅如此 - 它是一个模式,您也可以为自己的数据提供者实现它。

        LINQ to SQL 只是该模式的一个示例。对于它的价值,我认为 LINQ to SQL 正在被淡化而不是真正消失,但我们会看到......

        我个人首先发现 LINQ to Objects 是最有用的 LINQ 提供程序 :)

        【讨论】:

          【解决方案5】:

          LINQ 并没有消失。 LINQ to SQL 也没有,但它不是 Microsoft 的数据访问战略平台,而是实体框架。 EF 使用 LINQ to Entities,所以如果您花时间学习 LINQ,它仍然有效且有用。

          不过,LINQ 并不是一种特定于产品的技术。很容易利用(几乎)所有类型的集合的功能和灵活性。例如。

          List<MyType> myList = new List<MyType>();
          // populate the list here
          var filteredResults = from o in myList
                                where o.property == "hello world"
                                select o;
          

          (概念上)有效,即使此处的代码示例存在缺陷。

          【讨论】:

            【解决方案6】:

            Linq 不仅仅是 Linq-to-SQL。例如,Linq-to-Objects 和 Linq-to-XML 之类的东西就是该技术的一部分。

            我怀疑他们会离开!手指交叉。 ;-)

            【讨论】:

              猜你喜欢
              • 2010-09-19
              • 1970-01-01
              • 1970-01-01
              • 2010-09-13
              • 1970-01-01
              • 2015-10-18
              • 2014-04-06
              • 2017-11-29
              • 2021-04-14
              相关资源
              最近更新 更多