LINQ to SQL是否被弃用?

早在2008年底,关于LINQ to SQL的未来就有很多争论。 许多人认为,微软在.NET 4.0entity framework中的投资是LINQ to SQL没有前途的标志。 我想我会在做出自己的决定之前等待,因为人们不同意。

快18个月,我有供应商提供依赖于LINQ to SQL的解决scheme,我亲自试用过,并且非常喜欢使用它。 我觉得这是留在这里。

但是我正在阅读一本新书(Ben Watson的C#4.0 How-To)和第二十一章(LINQ),他build议说它“已经或多或less被微软弃用”,并build议使用LINQ to Entity Framework。

我的问题是,是否正式弃用LINQ to SQL,或者权威实体(Microsoft,Scott Gu等)是否正式build议使用LINQ to Entities而不是LINQ to SQL。

对于所有的“Linq-to-SQL都是死的”人:Scott Guthrie本人在TechEd Europe上明确提到Linq-to-SQL在.NET 4中完全支持 ,Damien Guard发表了一篇博客文章 ,指出有哪些变化和改进用于.NET 4中的Linq-to-SQL。

引用马克·吐温的话:“我的死亡报告已经被夸大了”……

最后我检查了一下,这个站点使用(或者曾经使用过)Linq To SQL。 Joel Spolsky在他的GoogleTechTalk中提到了这个: http : //www.youtube.com/watch ?v = NWHfY_lvKIQ。

当谈到软件时,“死亡”是一个比喻性的修饰语(软件不会死于任何文字,生物学的意义上),所以这个争论可以一直持续下去,只要有关方面拒绝在字面意义上定义“ Linq死“。 或简称为LTD。 因此,截至目前,LTD的辩论已经持续了两年。 所有这些都是因为一点语言歧义。

那些说“L2S已经死了”的人一般是指L2S不会收到太多(如果有的话)新function的事实。 Linq的更新(像Damien Guard的post中提到的更新)可能仅限于性能,可用性和稳定性更新。 当然,一些开发者可能会认为这是一件好事(可能是那些对新dynamictypes感到愤怒的开发者)。

那些说“L2S还没有死”的人通常指的是L2S不会完全从.Net(至less不会很快)被切断。 想想:ADO。 它可能会失去一些开发人员的实力(这可能是微软那些狡猾的人的潜意识),但这并不意味着如果你愿意,你将无法使用L2S。 这仅仅意味着微软并不想用它来诱惑大众。

当开始一个项目时,我实际上认为在EF和L2S之间做出select是件好事。 正如比尔·瓦格纳(Bill Wagner)所指出的那样 ,两者都有时间和地点。

不它不是。 该团队仍在努力改进。

我迟到了这个讨论,但是我想指出的是,早在2008年,“链接到SQL项目经理”(Tim Mallalieu)就在他的博客文章中发表了这个声明,

“从.NET 4.0起,LINQ to Entities [而不是LINQ to SQL]将成为LINQ to关系场景的推荐数据访问解决scheme。”

我没有发现相反的其他更近的公告。

请务必阅读InfoQ.com上的这篇文章 – 这真的很有趣。 其结论是:“LINQ to SQL和LINQ to Entities的长期运行将会合并,同时,LINQ to SQL的开发工作也不会完全结束。

我想他们会合并是不可避免的。 EF实际上是LINQ over db对象的企业级实现。 linq2sql对所有的意图都是一个概念certificate(还有更多),它们实际上是在增长,但是却增加了我们现在在EF中看到的许多想法。 在一天结束的时候,DAL层(nhibernate,EF,l2s,亚音速等)应该在链的相当远的位置,以便抵消实现LINQ服务的客户端BO代码的任何差异 – 热插拔将是结束游戏通过DI。