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代码。
实体框架是一个适当的框架,可以让您自上而下地对域进行建模。