Linq-To-Sql的相对简单性以及对Entity Framework第1版的所有批评(特别是the vote of no confidence)使我确信“暂时”使用Linq-To-Sql“ 。现在EF 4.0已经用完了,我想知道是不是该开始迁移它了。
问题:
答案 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)
我们还计划添加对二级缓存的支持。
这些改进对您有价值吗?