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

时间:2009-11-14 14:08:20

标签: entity-framework orm

LINQ和实体框架之间有什么区别

LINQ和Entity Framework都被认为是ORM吗?

两者的优点是什么。

4 个答案:

答案 0 :(得分:5)

LINQ是一项基础技术 - 正如其他人已经指出的那样。

您可能正在谈论 Linq-to-SQL - 这是一个与SQL Server一起使用的相当简单,直接的ORM。

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

Linq-to-SQL很棒

  • 如果您需要非常简单的1:1映射 - 一个表等于域模型中的一个类
  • 如果除了SQL Server(Linq-to-SQL不支持其他任何内容)之外你什么都不需要
  • 如果你想快速启动并运行
另一方面,

实体框架

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

简而言之:Linq-to-SQL对于SQL Server来说是一个伟大的,简单的,精益的“ORM”ORM - 如果它能满足您的需求,请使用它。实体框架是一个非常不同的野兽,功能更强大,但也更复杂,更大 - 非常适合您的下一个关键企业应用程序,但可能对您的个人博客应用程序来说太过分了: - )

答案 1 :(得分:3)

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

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

答案 2 :(得分:3)

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

Entity Framework是一个ORM,以及LINQ to SQL。两者都使用LINQ来抽象被调用的实际SQL以从DB中查询记录。

LINQ的优点在于它抽象出查询每个不同数据集所需的详细信息。在LINQ之前,我们不得不知道如何查询在很多情况下非常不同的每种数据集。

通过为LINQ创建提供程序,不同的数据集可以与LINQ一起参与。例如,您现在可以使用LINQ通过LINQ to Twitter Provider访问twitter。

答案 3 :(得分:-1)

linq代表“语言集成查询”,因此您可以使用它来翻译c#代码中的tsql查询。

实体框架是一个允许您自上而下建模域名的框架