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

Esi*_*Esi 2 entity-framework linq-to-sql

linq到sql类和实体框架之间有什么区别似乎它们同样的工作就像两者 在.net3.5中更好,为什么? *.net4哪个好,为什么?*

mar*_*c_s 9

简述:

Linq-to-SQL是:

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

- >所以Linq-to-SQL工作,并且在.NET 3.5中运行良好 - 但是不要指望这里有任何新东西....

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

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

- >实体框架是.NET 4及更新版本的明确选择