linq到sql类和实体框架有什么区别

时间:2011-11-26 10:23:41

标签: entity-framework linq-to-sql

linq与sql类和实体框架有什么区别 似乎他们同样的工作就像两者 哪个更好.net3.5以及为什么? * 哪个更好.net4以及为什么? *

2 个答案:

答案 0 :(得分:9)

简言之:

Linq-to-SQL 是:

  • a"概念验证"由Visual C#团队完成,以展示Linq的功能
  • 直接1:1映射器 - 一个表成为代码中的一个实体
  • 仅适用于SQL Server
  • 不太适合支持存储过程(您不能创建"复杂类型"镜像从存储过程返回的值)
  • 设计人员驱动的,仅限数据库的方法(如果数据库发生变化,模型无法轻松更新)
  • 基本上是一种死胡同的技术 - 可能会有错误修复,但肯定没有新功能;它有效 - 但不希望有任何进一步的发展

- >所以Linq-to-SQL在.NET 3.5中运行得很好 - 但是不要期待任何新东西....

实体框架(至少在.NET v4及更高版本中)是:

  • a" right" OR-mapper技术(以及更多)由Microsoft的ADO.NET/database团队完成。
  • 灵活的映射器,包含物理层(数据库模式),概念层(您的.NET对象)以及这两者之间的映射层(三层方法)
  • 开箱即用支持多个数据库(SQL Server,Oracle等) - 相当容易为其他数据库编写实体框架兼容的提供程序
  • 非常支持存储过程(您甚至可以为一个实体和一个操作选择一个存储过程,例如DELETE)
  • 提供数据库优先,模型优先和代码优先的开发方法
  • 如果使用模型 - 如果表格随时间变化,则可以从数据库更新该模型
  • 微软投入大量资源的产品 - 仍然非常积极地开发(附加功能,代码优先开发等新方法等)。

- >实体框架是我明确选择.NET 4和更新的

答案 1 :(得分:1)

对此主题进行了大量的比较分析:

表现比较: Entity Framework and LINQ to SQL Performance

功能比较: LINQ to SQL vs Entity Framework

还可以在StackOverflow

中找到相关主题