EF只是ADO.NET中的一个最新的附属物。那么它对已经存在的代码,比如使用DataSet和DataReader或者Linq to SQL有什么影响呢?
你能一直用这些技术写新代码吗?
Dataset和Datareader不会被丢弃。你仍然能使用这些技术方法。EF提供了一个完全不同的方法获取和处理数据。你不需要整合这两种技术,比如,使用EF获取数据,然后把数据放入DS中。
这样做会没有必要,你应该只选择一种技术。你学了EF后就会知道,它提供了完全不同的样式访问数据,你可能会发现EF可能使用某些项目,但不适应其他的。
DataSet
EF使用以EntityDataReader的形式使用DataReader,它继承了同样的DbDataReader作为SqlDataReader。这也是EntityClient查询所返回的。事实上,你会发现用EntityClient代码查询EDM和用ADO.NET查询数据库很相似。都用到了connections,commands,command参数,并且返回一个DbDataReader。
Linq To SQL和EF表面上很相似,都是使用数据库模型提供Linq查询。
一个经常被问到的问题是,为什么微软创建了2个相似的技术。LTS是从Linq项目中演化而来的。EF则是数据可编程性团队的一个项目,它聚焦在Entity SQL语言。现在,每个技术已经出现这么久了,也已经展示给微软的其他团队了。很明显,微软又2个有些的新技术,各自瞄准不同的应用场合。
EF团队用Entity配合Linq来工作,这就是很多开发者混淆了,因为LTS和LTE太像了,并且在2008年的11月,这个团队宣布,因为这个技术瞄准了相同的问题,以后他们会专注于开发Entity Framework。Entity Framework支持了多个数据库,通过Entity数据模型可以结合了许多微软即将推出的新技术。然而,他们将持续维护LINQtoSQL。这对许多已经投资于LINQtoSQL上的开发者而言不是好事情。微软承诺维护Linq to SQL,微软也保证提供一个移植路径,将Linq to sql移植到Entity Framework并且微软在将来编程指导中,推荐使用EntityFramework
本文转自cnn23711151CTO博客,原文链接:http://blog.51cto.com/cnn237111/584023 ,如需转载请自行联系原作者