[来源:ADO.NET Technology Preview论坛] Kevin Hoffman的文章《LINQ to Entities vs. LINQ to SQL - What should I use and when? 》对LINQ to Entities与 LINQ to SQL(原名DLINQ)的功能做了比较,还对具体应该采用哪个技术做了讨论。
功能比较如下:
| 功能 | LINQ to SQL | LINQ to Entities |
| 支持语言扩展 | 是 | 是 |
| 支持语言集成数据库查询 | 是 | 是 |
| 支持多对多 (3way Join/Payload relationship) | 否 | 否 |
| 支持多对多 (No payload) | 否 | 是 |
| 支持存储过程 | 是 | 否(以后会加) |
| 支持实体继承 | 否* | 是# TD> |
| 支持数据来自多个数据表的实体类 | 否 | 是 |
| 支持对象Identity管理以及CRUD功能 | 是 | 是 |
注:*估计作者有误,五月份的LINQ CTP版支持单表继承
#支持三种继承映射,单表(table-per hierarchy),一类一表(table-per type),一具体类一表(table-per concrete type)
LINQ to Entities与LINQ to SQL间最本质性的区别在于,LINQ to Entities是对概念数据模型(conceptual data model)的查询。
Kevin Hoffman的结论是,
Paul Gielens也指出,选择哪个技术,很大程度上取决于你的数据库定义与你的domain model是否相近。如果非常相似,那么使用LINQ to SQL更直接了当,否则就使用ADO.NET实体框架。
*********************************
(第一次使用Windows Live Writer发中文贴,有一个地方很奇怪,Windows Live Writer居然不让拷贝中文标题!)