17

Linq-To-Sql 的相对简单性以及对 Entity Framework 版本 1 的所有批评(尤其是不信任投票)说服我“暂时”使用 Linq-To-Sql。现在 EF 4.0 已经发布,我想知道是否是时候开始迁移到它了。

问题:

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

2 回答 2

18

好吧,一场无休止的辩论:-)

是的,我坚信 EF4 已经为黄金时间做好了准备——微软在解决 EF 1.0 版本中几乎所有的烦恼和问题方面做得非常出色。

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

Linq-to-SQL 是一个非常简单、简洁、简洁的 OR 映射器——它将一个数据库表映射到一个 CLR 对象——仅此而已。非常基本,非常直接 - 但在 SQL Server 之上是一个相当薄的层。

另一方面,EF4 更多

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

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

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

EF4 很棒——如果你需要它的强大功能——那就去吧!

但是,如果您的要求要少得多,那可能只是矫枉过正——继续使用 Linq-to-SQL(我会)并对此感到满意。我看不出有什么充分的理由放弃 Linq-to-SQL - 它在 .NET 4 中仍然完全可用,甚至还得到了一些错误修复和改进,而且它至少还会存在几年。

于 2010-04-23T21:15:19.393 回答
0

@marc_s,@DanM:

请不要将此帖子视为广告 :) 我们只是想知道 Linq to 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)  

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

这些改进对您有价值吗?

于 2010-10-08T09:27:03.140 回答