LINQ和Entity Framework有什么区别
LINQ和Entity Framework都被认为是ORM吗?
两者的优点是什么?
LINQ 是.NET Framework的一组扩展,包含语言集成的查询,设置和转换操作 .
Entity Framework 是.NET Framework的对象关系映射(ORM)框架 .
LINQ是一项基础技术 - 正如其他人已经指出的那样 .
您可能正在谈论 Linq-to-SQL - 这是一个与SQL Server一起使用的相当简单,直接的ORM .
Entity Framework 也是一个ORM - 然后是一些!真的,这是一个完全不同的野兽 .
Linq-to-SQL is great
如果您需要非常简单的1:1映射 - 一个表等于域模型中的一个类
如果除了SQL Server之外你什么都不需要(Linq-to-SQL不支持其他任何东西)
如果你想快速启动并运行
Entity Framework on the other hand
支持多个后端(SQL Server,Oracle,Firebird - 其他可能会跟随)
支持完整的概念数据建模策略 - 您可以在数据库中定义物理模型,在应用程序中定义概念模型,以及在两者之间进行映射
使您能够处理将单个业务实体映射到多个表的操作
支持每个层次表和每个类的表继承方案
简而言之:Linq-to-SQL对于SQL Server来说是一个伟大的,简单的,精益的'OR'mean ORM - 如果它能满足您的需求,请使用它 . 实体框架是一个非常不同的野兽,功能更强大,但也更复杂,更大 - 适合您的下一个关键企业应用程序,但可能对您的个人博客应用程序来说太过分了:-)
LINQ允许您使用相同的语法查询许多不同的数据集 . 例如,使用LINQ,您可以使用与SQL语法类似的相同语法查询字符串集合或您自己的对象集合或数组或XML .
实体框架是一个ORM,以及LINQ to SQL . 两者都使用LINQ来抽象被调用的实际SQL来查询来自DB的记录 .
LINQ的优点在于它抽象出查询每个不同数据集所需的详细信息 . 在LINQ之前,我们不得不知道如何查询在很多情况下非常不同的每种数据集 .
通过为LINQ创建提供程序,不同的数据集可以与LINQ一起参与 . 例如,您现在可以使用LINQ通过LINQ to Twitter Provider访问twitter .
linq代表“语言集成查询”,因此您可以使用它来翻译c#代码中的tsql查询 .
实体框架是一个框架,可以让您自上而下地对域进行建模
4 回答
LINQ 是.NET Framework的一组扩展,包含语言集成的查询,设置和转换操作 .
Entity Framework 是.NET Framework的对象关系映射(ORM)框架 .
LINQ是一项基础技术 - 正如其他人已经指出的那样 .
您可能正在谈论 Linq-to-SQL - 这是一个与SQL Server一起使用的相当简单,直接的ORM .
Entity Framework 也是一个ORM - 然后是一些!真的,这是一个完全不同的野兽 .
Linq-to-SQL is great
如果您需要非常简单的1:1映射 - 一个表等于域模型中的一个类
如果除了SQL Server之外你什么都不需要(Linq-to-SQL不支持其他任何东西)
如果你想快速启动并运行
Entity Framework on the other hand
支持多个后端(SQL Server,Oracle,Firebird - 其他可能会跟随)
支持完整的概念数据建模策略 - 您可以在数据库中定义物理模型,在应用程序中定义概念模型,以及在两者之间进行映射
使您能够处理将单个业务实体映射到多个表的操作
支持每个层次表和每个类的表继承方案
简而言之:Linq-to-SQL对于SQL Server来说是一个伟大的,简单的,精益的'OR'mean ORM - 如果它能满足您的需求,请使用它 . 实体框架是一个非常不同的野兽,功能更强大,但也更复杂,更大 - 适合您的下一个关键企业应用程序,但可能对您的个人博客应用程序来说太过分了:-)
LINQ允许您使用相同的语法查询许多不同的数据集 . 例如,使用LINQ,您可以使用与SQL语法类似的相同语法查询字符串集合或您自己的对象集合或数组或XML .
实体框架是一个ORM,以及LINQ to SQL . 两者都使用LINQ来抽象被调用的实际SQL来查询来自DB的记录 .
LINQ的优点在于它抽象出查询每个不同数据集所需的详细信息 . 在LINQ之前,我们不得不知道如何查询在很多情况下非常不同的每种数据集 .
通过为LINQ创建提供程序,不同的数据集可以与LINQ一起参与 . 例如,您现在可以使用LINQ通过LINQ to Twitter Provider访问twitter .
linq代表“语言集成查询”,因此您可以使用它来翻译c#代码中的tsql查询 .
实体框架是一个框架,可以让您自上而下地对域进行建模