我使用visual studio 2005,但最近我听说有一种新技术叫做entity framework
..我应该继续使用它而不是使用通常的SqlDataReader
!
对我来说最重要的是性能,请注意我使用 DataReader 从数据库中获取数据并将其作为通用列表返回 ..
任何建议 ..thanx :)
6 回答
SqlDataReader
和Entity Framework
是访问数据的两种完全不同的方法。使用SqlCommand
s,您自己编写 SQL 查询。使用 O/R 映射技术,例如Entity Framework
,关系数据库结构被映射到您访问其属性的对象,例如 Linq to Entities。请注意,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”。
自己编写查询仍然胜过任何自动过程的性能。实体框架使数据层更加抽象,提高了可移植性和可读性。