Entity Framework和DataSet,Linq to SQL有什么区别
2011-06-09 10:31
344 查看
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
你能一直用这些技术写新代码吗?
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
相关文章推荐
- LINQ / LINQ to SQL / LINQ to XXX 它们到底有什么区别
- Linq系列文章(一):Linq 是什么?Linq 和Linq to sql 的区别
- Linq to DataSet 能否和 Linq to SQL 混合使用?
- 从微软的DBML文件中我们能学到什么(它告诉了我们什么是微软的重中之重)~六 LINQTOSQL中为我们触发了SendPropertyChanging和SendPropertyChanged,它的真正用意是什么
- asp.net Linq和泛型,IEnumerable和IQueryable之间的区别,Lambda表达式,Linq to Sql停止开发转为 Entity Framework
- Linq和泛型,IEnumerable和IQueryable之间的区别,Lambda表达式,Linq to Sql停止开发转为 Entity Framework
- 什么是Linq to sql 学习linq 1
- 什么是 Linq to sql
- Linq to Sql 与 Entity Framework的区别
- Debug 对 Linq to Sql 有什么影响吗?
- Linq to sql 有什么办法可以实现消除列重复?
- 什么是Linq to sql
- 有关linqtosql和EF的区别
- linq to sql 和linq to php 的区别
- LINQ TO SQL 什么优缺点(网文摘录)
- 如何追踪LINQ To SQL 生成的SQL
- (原创)一步一步学Linq to sql系列文章
- 浅谈LINQ to SQL集成数据库语言优劣
- 一步一步学Linq to sql(八):继承与关系