ADO.NET中DataSet和Entity Framework的区别
以前做过几个项目,在存放数据这块,用过DataSet和Entity Framework,总的来说用DataSet的时候比较多,因为感觉查出来的表看着比较直观。我就是想问下各位大神,这两个的关键区别在哪?做一个项目,我怎么去选择用哪种?
------解决方案--------------------DataSet是离线的数据集,而Entity Framework是面向对象的操作。思维方式不同。
------解决方案--------------------其实我觉得你应该考虑是用ado.net还是用ef。
这里已经有人给了看法,http://zhoufoxcn.blog.51cto.com/792419/313309。
我认为任何事物都是向前发展的,新事物的产生必定有它产生的背景。当初我们用ado.net+sql与数据库进行交互,充分展示了sql语言的魅力,但其实这是有问题的。作为C#程序员,需要额外的学习数据库开发,甚至为了适应各种数据库要学习各种不同的sql特性,这其实是软件编程领域技术不成熟的表现。好在java有了hibernate,后来c#也有了移植版本nhibernate,直到微软推出ef。我个人认为,C#程序员应该关心C#本身,而不是学一些杂七杂八的东西,可能这有点理想化。
所以我非常推崇ef,虽然它的开发效率要高、执行效率低(还是要转化为sql执行),但是作为C#程序员,应该是面向对象的。
------解决方案--------------------首先看你习惯使用哪个。 我建议你先使用dataset然后慢慢转。不要一下直接用EF
。如果用之前先系统学习下。了解下机制。然后再用。
------解决方案--------------------个人认为对存储到DataSet中的数据做操作较方便,,,EntityFramework是微软的一个ORM,,,它的出现使得对ADO.NET的更简洁,优雅的改进,,,也是另外一种对接数据库的方式,,,,具体哪一个一方面可能要根据项目需求,,另外一点也可能会根据人的喜好来选择,,,达到自己的满意度最佳