【问题标题】:should I move on to entity framework我应该继续使用实体框架吗
【发布时间】:2010-08-02 10:14:58
【问题描述】:

我使用visual studio 2005,但最近我听说有一种新技术叫做entity framework ..我应该继续使用它而不是使用通常的SqlDataReader
对我来说最重要的是性能,请注意我使用 DataReader 从数据库中获取数据并将其作为通用列表返回..
任何建议..thanx :)

【问题讨论】:

    标签: c# entity-framework sqldatareader


    【解决方案1】:

    SqlDataReaderEntity Framework 是访问数据的两种完全不同的方法。使用SqlCommands,您自己编写 SQL 查询。使用诸如Entity Framework 之类的 O/R 映射技术,关系数据库结构被映射到您访问其属性的对象,例如Linq 到实体。请注意,O/R 映射方法不是关于速度的。

    【讨论】:

      【解决方案2】:

      如果您在VS 2005。我认为您不能使用实体框架。为此,您需要 2008 和 .NET 3.5 SP1。实体框架有一些问题。如果您要使用实体框架;使用 Visual Studio 2010 和 .NET 4.0。这将是一个更好的选择。

      来自Scott Gu的最新更新

      【讨论】:

        【解决方案3】:

        如果你想切换到 Linq to Entities 那么是的,你需要 VS2010。

        或者您可以继续使用 VS2005/2008 并使用 nHibernate 或类似框架。
        但这些 ORM 工具中没有一个(主要)与速度有关,因此它可能不适合您。

        切换到 ORM 框架的原因是为了使用更多的 OOP 方法,即替换您的通用列表。

        查看一些演示/演练以确定它是否适合您。

        【讨论】:

        • LINQ to Entities 不需要 VS 2010,是吗?诚然,最新版本会,但以前的版本应该可以与 VS 2008、AFAIK 一起使用。
        • @Jon,是的,但我不会推荐第一个 EF 版本,或者升级到 VS2008。
        • @Henk:这很公平,但这与说“如果你想切换到 L2E,你将需要 VS2010”不一样 :) (可能还有其他原因导致 OP 不能使用VS2010,但他可能可以使用2008,EF可能仍然是最好的方法。)
        • 他还可以使用 .NET 3.5 中包含的 LINQ to SQL。我认为您需要 Visual Studio 2008 才能使用其设计器。
        • @Jon,正确但非常假设。如果我不能使用 VS2010 做某事,我不会使用 EF。 @Steven:这是“类似”框架之一。列表更长。
        【解决方案4】:

        我建议您写下您的要求,然后确定选项,通过一些对您的要求有意义的测试(例如易用性、速度等)评估每个选项,最后做出决定。通过一些巧妙的设计和实施选择,您甚至可以在其中一些选择之间进行切换,至少在开始时只需相对有限的努力。

        实体框架当然是一种选择。我建议您在调查中也包括 NHibernate,特别是 fluent-nhibernate。祝你好运!

        【讨论】:

        • 我必须同意 - 有很多值得推荐的 EF 和 NHibernate 以及各种其他选项,但每个选项都是妥协,只要您在客户端代码和客户端代码之间使用 ORM 或任何其他技术您将要开始增加的数据库开销(即性能损失)然而在现实世界中,性能损失通常是微不足道的,并且对开发人员的好处相当可观。你需要先决定你想做什么(即你想改变你的数据库访问理念)然后看看你的选择。
        【解决方案5】:

        如果您考虑性能,请参见此处

        http://toomanylayers.blogspot.com/2009/01/entity-framework-and-linq-to-sql.html

        http://blog.codefluententities.com/2012/06/05/codefluent-entities-performance-comparison/

        传统的 ADO.NET(没有 ORM)是最快的方式。如果效率是一个关键问题,那么最好还是使用“SqlDataReader”。

        【讨论】:

          【解决方案6】:

          在性能方面,自己编写查询仍然胜过任何自动过程。实体框架让数据层更加抽象,提高了可移植性和可读性。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-09-06
            • 1970-01-01
            • 2013-04-27
            • 2023-04-11
            • 1970-01-01
            相关资源
            最近更新 更多