【问题标题】:What makes The ADO.NET Entity Framework different than other ORM in the market?是什么让 ADO.NET 实体框架与市场上的其他 ORM 不同?
【发布时间】:2009-03-04 22:56:10
【问题描述】:

问题标题很清楚,我想知道为什么它不同,为什么,什么时候为我的项目选择它?

【问题讨论】:

    标签: c# .net vb.net entity-framework ado.net


    【解决方案1】:

    I wrote a blog post on this a while ago。简而言之,它对 ORM 采用了与 Hibernate、ECO 和我所研究的其他 ORM 完全不同的方法。您可能认为这种方法更好、更差或不重要,但如果您看得足够深入,就很难怀疑它是不同的。但不要相信我的话。如果您真的对此主题感兴趣,我强烈建议您阅读 ACM Queue 中的 this technical paperthis interview

    【讨论】:

      【解决方案2】:

      这可能不是您正在寻找的答案,但我认为您不应该在您的项目中使用它。它很年轻,也不是很完整。等下个版本出来吧。

      如果您坚持使用实体框架,那么它有一些好处。一个不错的方法是它允许以非常简单的方式进行复杂的映射。当然,因为它是一项微软技术,所以 IDE 集成很好。

      但就像我说的,我试过了,但我不相信它已经准备好实际使用了。

      祝你项目顺利

      【讨论】:

        【解决方案3】:

        ADO.NET 不是 ORM。

        基本上,不同之处在于每个人使用的抽象级别。

        使用 ADO,您基本上可以查询数据库并将结果用作对象,就像是 RDBMS 和您的对象之间的桥梁。

        您为数据库建模,然后从该模型创建对象。这就是为什么它是一个实体框架(数据库实体)

        ORM 不是用于查询或将数据库记录表示为对象(尽管这是每个人都使用它们的方式——包括我——),而是一种将对象模型持久保存到关系数据库中的方法。

        它们是对象到关系映射(不是关系到对象映射)

        所以,当你有一个域(对象)模型并且你想要一些东西来持久化它(到 RDBMS)或者当你有一个实体模型并且你想将它用作你的对象时,你可以选择其中一个。应用程序。

        【讨论】:

          【解决方案4】:

          根据我的阅读,它对 WCF 远程处理/二进制序列化有很好的支持,这是许多 ORM 不太支持的(如果有的话)。如果您想在客户端使用 ORM 创建富客户端/服务器/远程处理应用程序,则可能值得研究。

          【讨论】:

          • 我想你可能会想到 ADO.NET 数据服务,它有一个很好的 REST 接口和 WCF 支持。
          • 澄清一下,我说的是使用 wcf 服务作为源的映射实体。
          • EF 有什么,我不会称其为“良好的支持”... google:Entity Framework WCF,您只会发现一页又一页的问题...
          • 嗯,好的是相对的,但还有哪些其他 ORM 支持 WCF 作为跨网络二进制序列化的源?就个人而言,在大多数情况下,我更喜欢 NHibernate 而不是 EF,但我认为在这种情况下,恕我直言,EF 有更好的故事。
          【解决方案5】:

          【讨论】:

            【解决方案6】:

            ORM 世界中一些最优秀的 .NET 人才似乎正在从事 NHibernate(免费开源;我使用它)和 LLBLGen Pro(商业)等项目。

            NHibernate 是企业级全面多供应商 ORM 的主导标准。 NHibernate 也是纯 ORM 实现的主导标准,允许开发人员完全独立于 NHibernate 基础架构编写域模型,并完全消除代码生成的类。

            NHibernate 一开始可能看起来很吓人。但是,一旦您稍微使用它,它实际上是相当友好的,并且自 7 月以来一直在努力使 NHibernate 几乎无需配置。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2010-09-06
              • 2013-08-09
              相关资源
              最近更新 更多