LINQ和实体框架都被认为是ORM吗?

Are both LINQ and Entity Framework considered ORM?

Linq和实体框架有什么区别

LINQ和实体框架都被认为是ORM吗?

两者的优点是什么?


Linq是一种基础技术——正如其他人已经指出的那样。

您可能在谈论LinqtoSQL——这是一个非常简单、简单的用于SQL Server的ORM。

实体框架也是一个ORM——然后是一些!真的,这是一只完全不同的野兽。

Linq to SQL很好

  • 如果您需要非常简单的1:1映射-一个表等于域模型中的一个类
  • 如果您除了SQL Server之外再也不需要其他任何东西(Linq to SQL不支持其他任何东西)
  • 如果你想很快就开始跑步

另一方面,实体框架

  • 支持多个后端(SQL Server、Oracle、Firebird-其他可能会效仿)
  • 支持完整的概念数据建模策略-您可以在数据库中定义物理模型、应用程序中的概念模型以及两者之间的映射
  • 使您能够处理诸如将单个业务实体映射到多个表之类的事情
  • 支持每个层次结构的表和每个类的表继承方案

简而言之:LinqtoSQL是一个伟大的、简单的、精益的SQL服务器ORM—如果它满足了您的所有需要,就使用它。实体框架是一种完全不同的野兽,功能更强大,但也更复杂,更大——非常适合下一个企业关键型应用程序,但可能会对您的个人博客应用程序造成过度破坏:—)


Linq允许您使用相同的语法查询许多不同的数据集。例如,使用LINQ,您可以查询字符串集合、自己的对象集合、数组或XML,例如所有这些都使用与SQL语法类似的相同语法。

实体框架是ORM,也是LINQ to SQL。两者都使用LINQ从数据库中提取查询记录所调用的实际SQL。

Linq最棒的地方是它抽象出查询每个不同数据集所需的细节。在LINQ之前,我们被迫知道如何查询每种数据集,在许多情况下,这些数据集是非常不同的。

不同的数据集可以通过为Linq创建一个提供程序来参与它。例如,您现在可以使用linq访问带有linq to twitter提供程序的twitter。


Linq是.NET框架的一组扩展,包含语言集成的查询、设置和转换操作。

实体框架是.NET框架的对象关系映射(ORM)框架。


Linq代表"语言集成查询",因此您可以使用它将TSQL查询转换为C代码。

实体框架是一个适当的框架,可以让您自上而下地对域进行建模。