LINQ to SQL死了还是活着?

时间:2008-10-31 05:33:51

标签: linq-to-sql

就在我与LINQ to SQL交朋友时,似乎MS正在从它下面拉出地毯。

http://blogs.msdn.com/adonet/archive/2008/10/29/update-on-linq-to-sql-and-linq-to-entities-roadmap.aspx

从我的一点点研究来看,EF对简单的工作来说太过分了。但是在这个公告之后是否有继续使用LINQ to SQL的意义?

除了LINQ to SQL的未来之外,这通常不会发送错误信号吗?鉴于MS在墙上投掷比特的速度,早期使用任何新比特是否合理? (这很好,LINQ to SQL几乎不早!)。

对于我的LINQ to SQL工作,我想我要去SubSonic了!

更新:一些新意见:

http://ayende.com/Blog/archive/2008/10/31/microsoft-kills-linq-to-sql.aspx

http://codebetter.com/blogs/david.hayden/archive/2008/10/31/linq-to-sql-is-dead-read-between-the-lines.aspx

16 个答案:

答案 0 :(得分:64)

1)他们无法“杀死”Linq-to-SQL,因为它已经是.net框架的一部分。他们可以做的是停止向其添加功能。这并不妨碍那些已经使用L2S扩展并改进它的数千名开发人员。一些核心领域很难触摸,但它们已经很稳固了missing designer features can easily be bolted on

2)其中一个PDC EF sessions表明他们从EFv1惨败中吸取了一些教训,他们现在将许多好东西从L2S复制粘贴到EF并假装它是新的EF东西。换句话说,L2S版本2刚刚被“重新标记”EF。

3)LINQ本身(语言集成查询)是切片冰淇淋以来最好的东西,它可以用于除L2S之外的许多其他东西(Linq到对象,Linq到实体,Linq到XML,Linq-到任何东西)。所以DP小组试图迫使[广大的] L2S采用者转向[不太受欢迎且目前存在缺陷]的实体框架,这是没有理由不学习Linq。

另见这个帖子(我认为这部分触发了Tim的博客文章): http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=4061922&SiteID=1

更新1: Roger Jennings 2008年12月发行的Visual Studio Magazine封面故事是一篇很好的读物,有一些L2S与EF比较:http://visualstudiomagazine.com/features/article.aspx?editorialsid=2583

更新2: Anders Hejlsberg在Redmond Developer News中被引用说“ LINQ to SQL并没有死。我可以向你保证,它没有死。没有什么消失我们从未这样做过,我们永远不会这样做。

http://reddevnews.com/blogs/weblog.aspx?blog=3016

答案 1 :(得分:28)

您的问题需要解决的含糊不清。

LINQ!= LINQ to SQL

有很多LINQ技术和提供商:

  • Linq to SQL;
  • Linq to Entities;
  • Linq to Objects;
  • Linq to XML;

......而这些只是来自微软的那些。还有非MS提供商,包括NHibernate。

您链接的博客文章仅讨论Linq to SQL。

LINQ的关键优势在于您可以学习和使用一种查询语法,并在多种技术中重复使用它。

鉴于此,我建议任何人认为缺少“Linq To SQL”的未来是无关紧要的,因为您在编写LINQ查询时获得的技能将来可以转移到其他工具。

答案 2 :(得分:21)

我们不会杀死LINQ to SQL。我们正在针对EF进行优化,但LINQ to SQL肯定不会被淘汰掉:))

- 斯科特/微软。

答案 3 :(得分:14)

您不仅应该学习Linq(System.Linq.Enumerable和System.Linq.Queryable),还需要学习.net语言的编程语言增强功能。

在C#3.0中,这些包括:

  • 扩展方法(在第一个参数上使用this关键字的静态方法)
  • 编译器推断类型(var)
  • Lambda语法(根据上下文生成匿名方法或表达式)
  • 初始值设定
  • 属性默认实现(简写)

了解更多here


在VB 9.0中,有一些内联XML魔术和许多其他东西(许多类似于上面的C#列表)。

了解更多here

答案 4 :(得分:8)

老实说,我不明白你在那篇文章中读到的内容是link2sql已经死了。

在链接到它的博客文章中说:

我们正在倾听客户关于LINQ to SQL的信息,并将继续根据我们从社区收到的反馈来改进产品。

对我而言,将来会开发和支持LINQ to SQL。我想知道为什么你认为它已经死了?

答案 5 :(得分:7)

当然,我认为LINQ to SQL,LINQ to Entities和LINQ to [insert 3rd Party ORM]之间的选择提供了一个完全健康的数据访问层方法生态系统,软件开发人员可以从中选择。像NHibernate,LLBLGen甚至亚力士这样的第三方提供商(不确定他们是否会提供LINQ提供商)肯定会让竞争更好,更有趣。

话虽如此,微软放弃LINQ to SQL将会感到非常难过,特别是因为它确实有很好的追随者 - 甚至StackOverflow都建立在它上面。

答案 6 :(得分:6)

Interesting blog post about it.以及Stackoverflow posts上的一些相关信息。

基本要点似乎是在ado.net blog上发表的评论,表明实体框架是获得Visual Studio 2010和Dot Net 4主要开发人员时间的唯一方法。

我的回答是 - DUH。我们都知道这一点。微软在PDC 2007上公开表示,LINQ to SQL是SQL Server的短期版本,因为SQL Server没有其他LINQ故事。它仅适用于SQL Server。你不能编写一个LINQ to SQL提供程序 - 它没有模型。这是一种一次性技术,不可扩展。

实体框架是Microsoft建立LINQ提供商的唯一途径。实体框架已经证明是非常具有相应性,但我认为部分原因在于LINQ to SQL今天拥有更好的程序员体验。实体框架将捕获并超越LINQ to SQL,因为它是Microsoft未来的ORM / Mapping工具。

编辑 - 我刚刚在my blog

上对此进行了更详细的描述

EDIT2 - IQueryable Provider - 与LINQ to SQL提供程序不同。您可以为自己喜欢的任何内容编写自己的IQueryable Provider。您没有设计师支持或模型生成。我知道没有gui设计师模型可以用于生成LINQ to SQL模型。

答案 7 :(得分:5)

我想我真的没有看到这里的问题。从您链接的文章:

  

我们正在倾听客户的意见   关于LINQ to SQL和意志   继续发展基于产品   我们收到的反馈意见   社区也是如此。

我错过了什么吗?是什么让人觉得LINQ to SQL在到达时死了?

答案 8 :(得分:4)

Scott Guthrie告诉我他们不会杀死LINQ to SQL:

Post at LINQDev.com

答案 9 :(得分:4)

有人记得VB6吗?无论你是个人厌恶还是喜欢它,微软都销售了数百万份拷贝,企业花费了数百万美元来编写数百万行VB6。接下来发生了什么?

所以请考虑这一课。对我来说,LinqToSQL支持似乎相当勉强。它们是obliged来支持它,因为它在当前的.NET框架中。但它会在.NET 5,6,7 ......吗?试想一下对你来说有多重要(据我所知,对你来说根本不重要)。

答案 10 :(得分:3)

也许你不应该费心去学习Linq to SQL,但是他们仍然会保留实体Linq。

答案 11 :(得分:3)

答案 12 :(得分:3)

很明显,在微软的工具箱中,2个ORM是一对多的,但对我来说,似乎错误的框架已被选中用于所有错误的原因。事实上,C#团队在很短的时间内完成了ADO.NET团队应该做的工作并且更好地完成了工作,这对ado.net团队来说很难实现。并不是说我知道2个框架的内部工作原理,但我认为将linq2sql的缺点升级到实体框架要快得多。

似乎涉及太多的政治,我认为这真的会损害asp.net的声誉,因为我不相信Entity框架会给我们一个与Linq2sql同样用户友好的体验。 ado.net团队还可以从asp.net mvc团队学习一些沟通技巧,因为对问题的澄清最多是模糊的。

学习Scott Gu和他的MVC团队在这里会很有趣,因为他们的大多数例子都使用Linq2Sql。

答案 13 :(得分:2)

使用Linq 2 Sql和Entity Framework时存在大量重叠区域总是有点奇怪。我认为L2S只进入.NET 3.5版本的唯一原因是因为人们普遍怀疑EF会看到光明的一天。既然EF1已经用完了,那么它就是一个非常粗糙的v1,不再需要L2S了。

答案 14 :(得分:2)

(不,StingyJack,LINQ to SQL不使用实体框架)

无论如何,我不担心。 Tim说他们正在听客户关于LINQ to SQL的问题。从我见过的L2S热情来看,客户(就是我们)会说出自己的想法。

而且,正如KristoferA指出的那样,他们实际上无法“杀死”L2S,只能冻结它。 L2S一旦抛光,实际上并不需要进一步的开发。有了L2S提供程序,LINQ中的所有进展也应该在L2S中可用。所以选择仍然是我们的。

答案 15 :(得分:0)

下一版本的Windows Phone 7,代号为Mango,包含一个可通过Linq to SQL访问的SQL Server Compact Edition http://jesseliberty.com/2011/05/10/coming-in-mangosql-server-ce/