实体框架与LINQ to SQL

.net entity-framework linq-to-sql

现在已经发布了.NET v3.5 SP1(以及VS2008 SP1),现在我们可以访问.NET实体框架了。

我的问题是这个。在尝试使用Entity Framework和LINQ to SQL作为ORM时,有什么区别?

我理解它的方式,实体框架(当与LINQ to Entities一起使用时)是LINQ to SQL的“大哥”?如果是这种情况 - 它有什么优势?它能做什么LINQ to SQL本身无法做到的?

一般承认的答案

LINQ to SQL仅支持Microsoft SQL Server中可用的数据库表,视图,Sproc和函数的1对1映射。这是一个很好的API,用于快速数据访问构建到相对精心设计的SQL Server数据库。 LINQ2SQL最初是与C#3.0和.Net Framework 3.5一起发布的。

LINQ to Entities(ADO.Net实体框架)是一种ORM(对象关系映射器)API,它允许广泛定义对象域模型及其与许多不同ADO.Net数据提供者的关系。因此,您可以混合和匹配许多不同的数据库供应商,应用程序服务器或协议,以设计由各种表,源,服务等构建的对象的聚合混搭.ADO.Net Framework随之发布.Net Framework 3.5 SP1。

这是关于MSDN的一篇很好的介绍性文章: 介绍LINQ到关系数据


热门答案

我认为快速而肮脏的答案就是这样

  • LINQ to SQL是一种快速简便的方法。这意味着如果你正在做一些更小的事情,你会更快,更快地交付。
  • 实体框架是一种全面,无拘无束的方式。这意味着如果你正在做更大的事情,你会花更多时间在前面,发展得更慢,并且具有更大的灵活性。



许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因