实体框架与LINQ to SQL

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

我的问题是这个。 当试图在使用实体框架和LINQ to SQL作为ORM之间做出决定时,有什么区别?

我理解它的方式,实体框架(当与LINQ to Entities一起使用时)是LINQ to SQL的'大哥'? 如果是这种情况 - 它有什么优势? LINQ to SQL无法独立完成什么?


LINQ to SQL仅支持Microsoft SQL Server中可用的数据库表,视图,sprocs和函数的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是快速简单的方法。 这意味着如果你正在研究更小的东西,你会更快,并且交付更快。
  • 实体框架是全方位的,没有任何阻碍的方式。 这意味着如果您正在从事更大型的工作,您将需要更多时间预先,开发更慢,并且具有更大的灵活性。

  • LINQ to SQL真的死了吗? 由Jonathan Allen为InfoQ.com提供

    Matt Warren将[LINQ to SQL]描述为“甚至从未存在过”。 从本质上讲,它只是为了帮助他们开发LINQ直到真正的ORM准备就绪。

    ...

    实体框架的规模导致它错过了.NET 3.5 / Visual Studio 2008最后期限。 对于不幸命名的“.NET 3.5 Service Pack 1”而言,它已经完成了,它更像是一个主要版本而不是一个服务包。

    ...

    由于复杂性,开发人员不喜欢[ADO.NET实体框架]。

    ...

    从.NET 4.0开始,LINQ to Entities将成为LINQ to关系场景的推荐数据访问解决方案。

    链接地址: http://www.djcxy.com/p/5725.html

    上一篇: Entity Framework vs LINQ to SQL

    下一篇: Entity Framework Updating with Related Entity