【发布时间】:2010-08-02 10:14:58
【问题描述】:
我使用visual studio 2005,但最近我听说有一种新技术叫做entity framework ..我应该继续使用它而不是使用通常的SqlDataReader !
对我来说最重要的是性能,请注意我使用 DataReader 从数据库中获取数据并将其作为通用列表返回..
任何建议..thanx :)
【问题讨论】:
标签: c# entity-framework sqldatareader
我使用visual studio 2005,但最近我听说有一种新技术叫做entity framework ..我应该继续使用它而不是使用通常的SqlDataReader !
对我来说最重要的是性能,请注意我使用 DataReader 从数据库中获取数据并将其作为通用列表返回..
任何建议..thanx :)
【问题讨论】:
标签: c# entity-framework sqldatareader
SqlDataReader 和Entity Framework 是访问数据的两种完全不同的方法。使用SqlCommands,您自己编写 SQL 查询。使用诸如Entity Framework 之类的 O/R 映射技术,关系数据库结构被映射到您访问其属性的对象,例如Linq 到实体。请注意,O/R 映射方法不是关于速度的。
【讨论】:
如果您在VS 2005。我认为您不能使用实体框架。为此,您需要 2008 和 .NET 3.5 SP1。实体框架有一些问题。如果您要使用实体框架;使用 Visual Studio 2010 和 .NET 4.0。这将是一个更好的选择。
来自Scott Gu的最新更新
【讨论】:
如果你想切换到 Linq to Entities 那么是的,你需要 VS2010。
或者您可以继续使用 VS2005/2008 并使用 nHibernate 或类似框架。
但这些 ORM 工具中没有一个(主要)与速度有关,因此它可能不适合您。
切换到 ORM 框架的原因是为了使用更多的 OOP 方法,即替换您的通用列表。
查看一些演示/演练以确定它是否适合您。
【讨论】:
我建议您写下您的要求,然后确定选项,通过一些对您的要求有意义的测试(例如易用性、速度等)评估每个选项,最后做出决定。通过一些巧妙的设计和实施选择,您甚至可以在其中一些选择之间进行切换,至少在开始时只需相对有限的努力。
实体框架当然是一种选择。我建议您在调查中也包括 NHibernate,特别是 fluent-nhibernate。祝你好运!
【讨论】:
如果您考虑性能,请参见此处
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”。
【讨论】:
在性能方面,自己编写查询仍然胜过任何自动过程。实体框架让数据层更加抽象,提高了可移植性和可读性。
【讨论】: