linq-to-sql - 现在已经发布Entity Framework 4.0了吗?转储Linq-To-Sql吗?

标签 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已经发布,我想知道是否是时候开始迁移到它了。

问题:


相对于Linq-To-Sql,EF 4.0的优缺点是什么?
EF 4.0终于准备就绪了吗?
现在是时候切换了吗?

最佳答案

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

是的,我坚信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中完全可用,甚至还带有一些bug fixes and improvements,并且它将至少存在两年。

关于linq-to-sql - 现在已经发布Entity Framework 4.0了吗?转储Linq-To-Sql吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2701952/

相关文章:

c# - 包含 "filter"的 CONTAINS 方法的 LINQ 语法

c# - 使用通用存储库更新多对多关系

entity-framework - Entity Framework (5)LINQ方法返回整个实体集合然后应用过滤器

javascript - Sequelize : Where should these methods reside

c# - LINQ to SQL - 使用抽象基类时的映射异常

c# - linq 查询从表中选择评论最多的前 10 个条目

linq-to-sql - 具有多个连接、分组依据和计数的 LINQ to SQL

c# - 我可以让 Entity Framework 只工作表的一部分吗?

python - 跨多对多表的关系

mysql - 如何在 MySql 数据库中使用 guid.comb 策略