只用过EF,性能可以接受,现在EF5据说性能更高
Ado+存储过程,项目中这样性能不错,再加索引
Adp.net,你写错了吧,应该是ADO.Net吧!我来给你讲讲
1.ADO.NET 做为原装的直接跟数据库打交道,直接操作数据库。没有进行额外的封装。比如我们可以直接执行sql语句,直接调用存储过程。直接操作DataSet数据集等等数据。
2.EF 是 ORM 微软编程思想的付诸于实践,他对ADO.NET过行的封装,对数据表进行了映射处理。以对象的形式展现在开发人员面前。开发人员可以利用Linq语句的优势来执行增、改、查。但是最终的操作都是要转换成SQL语句来执行。
比如:From a in Context.Student
Where a.id =1
Select a;
真正执行的时候会转换成 SQL " Select * from Student Where id=1"
所以说,EF让我们可以用面和对象的思想来编写程序,把注意力集中在系统中的业务环节。但是由于他要进行一次SQL语句的转换,所以相对于原始的ADO.NET来说,EF由于进行了封装,所以性能相对ADO.NET来说差一点点。不过EF也在不断的优化和改进中。 当然,EF也可以直接执行SQL语句和存储过程。有人会问,那为什么不直接执行SQL语句呢,回答是,直接执行的话要EF有什么用呢,EF就是在推行以面向对象编程的思想来处理业务。
3.NHibernate是把Java中用到的Hibernate移植到了.Net中, 所以你看到了名称前多了一个N,Hibernate是一个非常优秀的对象关系映射框架,NHibernate在移植的时候吸收了Hibernate 的优点。而且 EF是在Hibernate和NHibernate广泛使用后推出的,EF的聪明之处就是他吸收了前面两者的优点。并且还增加了一些自己的优点。所以说EF在性能方面应该不比前两者差。
当然,不管理是哪种方式,最终的目的还是为了解决问题,所以一定要根据实际情况来决定应该采取哪种方式。
ps:我想问的是性能的对比,如批量操作、大数据库的遍历速度
@wjta168:
那当然是ADO.NET了
原生态的ADO.NET 性能肯定是最好