我使用的是Visual Studio 2005,但最近听说有一种新技术叫做entity framework
。那么我应该转而使用它,而不是使用常规的SqlDataReader
吗?!
对我来说最重要的是性能,需要注意的是我使用DataReader
从数据库中获取数据,并将其作为通用列表返回。
有什么建议吗?谢谢 :)
我使用的是Visual Studio 2005,但最近听说有一种新技术叫做entity framework
。那么我应该转而使用它,而不是使用常规的SqlDataReader
吗?!
对我来说最重要的是性能,需要注意的是我使用DataReader
从数据库中获取数据,并将其作为通用列表返回。
有什么建议吗?谢谢 :)
SqlDataReader
和 Entity Framework
是两种完全不同的访问数据的方法。使用 SqlCommand
,您需要自己编写 SQL 查询。通过像 Entity Framework
这样的 O/R 映射技术,关系数据库结构被映射到您访问其属性的对象中,例如 Linq to Entities。请注意,O/R 映射方法并不是为了提高速度。
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”。
如果您想要转换到Linq to Entities,则需要使用VS2010。
或者您可以继续使用VS2005 / 2008并使用nHibernate或类似的框架。
但这些ORM工具没有(主要)关注速度,因此可能不适合您。
切换到ORM框架的原因是使用更多的OOP方法,即替换通用列表。
请查看一些演示/教程,以决定是否适合您。
自己编写查询仍然是性能方面最好的选择,任何自动化过程都无法超越。实体框架使数据层更加抽象化,从而提高了可移植性和可读性。