【问题标题】:ADO.NET Entity Framework and LINQ to SQLADO.NET 实体框架和 LINQ to SQL
【发布时间】:2011-01-15 03:39:15
【问题描述】:

谁能回答我的问题? 我们正在决定我们的数据访问层的实现。最初我们使用 NHibernate,但现在有变化,所以请回答我的问题...

LINQ to SQL 是 ADO.NET 的一部分 实体框架还是单独的 图书馆?

如果我说我正在使用“LINQ to SQL” 那么我的数据访问层是否意味着 我正在使用 ADO.NET 实体 实施数据的框架 访问层。

【问题讨论】:

    标签: linq-to-sql data-access-layer ado.net-entity-data-model


    【解决方案1】:

    LINQ to SQL 和 ADO.NET 实体框架是两个不同的产品,它们实现了两个不匹配的独立 API,这意味着您不能将一个换成另一个。两者都有其优点和缺点,具体取决于您的观点。 .NET 4 还将对这两个方面进行一些改进,更多改进计划针对 ADO.NET 实体框架。

    但它们是不同的不同 ORM,您必须选择其中一个...

    【讨论】:

      【解决方案2】:

      LINQ to SQL 是 ADO.NET 的一部分 实体框架还是单独的 图书馆?

      不,它是一个单独的库。

      如果我说我正在使用“LINQ to SQL” 那么我的数据访问层是否意味着 我正在使用 ADO.NET 实体 实施数据的框架 访问层。

      没有。 LinqToSql 和 Entity Framework 是独立且相互竞争的产品。 Microsoft 建议人们使用 Entity Framework,但大多数人都在使用 LinqToSql。微软将其大部分开发资源投入到实体框架中,而不是 LinqToSql。在 .NET 3.5 中,LinqToSql 通常是优于 Entity Framework 的产品,但很难直接比较。

      【讨论】:

      • @Michael:-1,因为,如果直接比较很困难,那为什么要比较?
      • @John Saunders:这个问题没有要求进行比较,但这似乎是一个明显的后续问题。我只是想提供帮助。微软在使用 LinqToSql 和 EntityFramework 的营销信息方面做得非常糟糕。我更愿意指出微软对这两个 ORM 的立场的明确声明,但我还没有找到任何东西。如果我的回答有问题,知道会很有帮助。
      • @Michael:信息很清楚,功能也很清楚。 LINQ to SQL 仅限于 SQL Server,并且仅限于与数据库的一对一映射。 Entity Framework 支持其他数据库,其他映射; 4.0中支持POCO等。LINQ to SQL前途有限,EF前途无限。顺便说一句,如果您删除“高级”评论,那么反对票就会消失。
      • @John Saunders:您的明确信息不包括 EF 不信任投票中的任何现实。 LinqToSql 具有 EF 3.5 所没有的功能。我不确定你为什么没有提到 LinqToSql 在哪里优于 EF 3.5?如果您认为 EF 3.5 优于 LinqToSql,您有权获得该意见,就像我有权获得相反意见一样。这不是我第一次或最后一次因为有人不同意我而被否决。
      • @Michael:如果您要说“它更好”,那么请说出为什么它更好。 OP 可能不会关心您提出的任何问题(因为我不关心“不信任投票”中提出的问题)。
      【解决方案3】:

      简而言之,Linq to sql 和 Ado.net 实体框架是两个不同的东西。

      Linq 是一种语言功能。 Linq to Sql 是一个扩展,允许您在数据库中使用 linq 功能。它就像基本的 DAL 生成工具。 Ado.net 实体框架是和ORM 类似的NHibernate。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-09-05
        • 1970-01-01
        • 2011-04-27
        • 2010-09-22
        • 1970-01-01
        • 1970-01-01
        • 2011-04-21
        • 1970-01-01
        相关资源
        最近更新 更多