Dump Linq-To-Sql now that Entity Framework 4.0 has been released?
Is Entity Framework worth moving to for a new small app?
现在,6个月以后,大概人们与EF4有更多的互动,所以我很好奇新鲜的意见,特别是当考虑只用sql Server工作的时候.
我已经使用LINQ to sql了很多,只是打了一点EF4.我不会介意跳入和学习更多的EF4,我不相信这是值得的额外的复杂性,如果我的应用程序只是要谈sql Server.
所以,如果你有两个经验,而你今天要启动一个新的中小型应用程序,使用sql Server后端,你会选择哪一个?
当然,为什么…
解决方法
>更容易开始和使用,
>从LINQ查询到Tsql更简单的翻译,并支持将更简单的.net方法转换为Tsql,而L2E依赖于“特殊”方法,例如日期/时间比较等,
>并且由于表和实体类之间的直接1:1映射而具有较少的运行时开销.
EF增加了更多的功能,例如支持其他RDBMS和比普通的1:1更复杂的映射,支持几种不同类型的实体继承等.带有成本:
>运行时开销高于L2S,
>编写针对EF的linq查询由于使用不支持的CLR方法或者需要使用L2E的“special methods”而稍微更可能运行到不能转换为Tsql的表达式中,而
由于双层(存储模型和概念模型)和它们之间的映射,可以花费更多的时间来获得EF模型的头部,而不是L2S模型.在xml编辑器中手动调整模型文件并不罕见.
简而言之:
>如果您的应用程序足够简单,您就可以只需要支持sql Server,和您的数据库架构/数据模型是干净的足够了,所以你不需要做更多的事情高级映射然后L2S是伟大的选择.虽然不太可能MSFT将添加任何新的大功能对它来说,这不是真的必要的.它工作得很好,因为它是解决应该解决的问题.许多应用和网站(包括此)在L2S上运行良好.>如果需要支持其他DB比sql Server,或者如果你的数据库模式与对象不匹配你想要的模型,或者你需要其他的从EF那里得到更大的功能应该使用EF.