Linq To Sql 与 Linq To Entity是差不多的,就是两者模型不一样,Linq To Sql是直接照搬的数据库模型,而Linq To Entity与数据库模型不尽相同,更具面向对象特征。
比如对于Room表中的UserID字段来说,Linq To Sql就是直接取用了这个ID号的值,而Linq To Entity则是将其指向一个User对象引用。
此外,Linq To Entity还支持更多的面向对象特征,比如继承。
两者都是通过模型生成的实体而访问数据库,它们自身也有缓存策略,对于重复访问的内容可以直接从内存中的缓存调取。
访问Dataset和Linq To Entity、Linq To Sql完全是两码事,它们都是强类型的访问,而Dataset是弱类型的,并且即使能访问Dataset,也是Linq To Object范畴。
建议学习和使用Linq To Entity,即Ado.Net Entity Framework,这是微软的侧重发展方向。
Ado.Net Entity Framework目前只支持sql server,Oracle的估计还得等一段时间,重要的是Lampad语法.
另:
Entity Framework(EF)存取Entity的三种方式。
LINQ to Entities | 直接通过LINQ存取,可完全将程序与数据库分离,由LINQ在内部自动使用Object Service进行数据库操作 |
Object Service | 可以透过Entity SQL(eSQL)来存取Entity,并且直接以对象的方式来存取结果集(因为结果集本身就是对象的集合)。 |
EntityClient | 通过过类似ADO.NET 的方法,以及 Entity SQL 存取 Entity。 |