现在已经发布了Entity Framework 4.0的Linq-To-Sql?

时间:2010-04-23 21:00:36

标签: linq-to-sql entity-framework orm entity-framework-4

Linq-To-Sql的相对简单性以及对Entity Framework第1版的所有批评(特别是the vote of no confidence)使我确信“暂时”使用Linq-To-Sql“ 。现在EF 4.0已经用完了,我想知道是不是该开始迁移它了。

问题:

  1. EF 4.0相对于Linq-To-Sql的优点和缺点是什么?
  2. EF 4.0最终准备好迎接黄金时段吗?
  3. 现在是时候切换了吗?

2 个答案:

答案 0 :(得分:18)

嗯,无休止的争论: - )

是的,我坚信EF4绝对准备好迎接黄金时段 - 微软在解决EF版本1.0的所有烦恼和问题方面做得非常出色。

如果您需要其所有功能,它已准备好迎接黄金时段。

Linq-to-SQL是一个非常简单,简洁,严谨的OR映射器 - 它将一个数据库表映射到一个CLR对象 - 这就是它。非常基本,非常直接 - 但在SQL Server顶部是一个相当薄的层。

另一方面,EF4更多

  • 对象空间中的概念数据模型
  • 数据库层上的存储数据模型
  • 两者之间的映射层
  • 独立于数据库的

因此,如果您确实需要支持多个数据库(而不仅仅是SQL Server),或者您真的需要能够将数据库结构转换为完全不同的对象模型 - EF4是一个很好的起点。

如果您有一个简单而直接的中小型应用程序,只需要能够轻松快速地将表1:1映射到对象,那么我认为EF4在简单性和性能方面甚至不是很接近到Linq-to-SQL。

EF4很棒 - 如果你需要它的力量 - 那就去吧!

但是如果你的要求少得多,那可能就是矫枉过正 - 继续使用Linq-to-SQL(我会)并对此感到满意。我没有看到任何有理由将Linq-to转储到SQL上 - 它仍然完全可以在.NET 4中使用,甚至已经被一些bug fixes and improvements祝福了,并且至少会持续几年。

答案 1 :(得分:0)

@marc_s,@ DanM:

请不要将这篇文章视为广告:)我们只想了解Linq高级用户对Sql的看法。

我们在LinqConnect(Linq to Sql Server,Oracle,MySql,PostgreSql,SQLite)中实现了以下改进:

- Complex Type  
- Many to Many  
- Batch update operations  
- Recursive support in DataLoad options  
- Query level preload (like Include in EF)  
- TPT support (in LinqConnect 2.0)  

我们还计划添加对二级缓存的支持。

这些改进对您有价值吗?