Linq to sql LINQ到SQL是死的还是活的?
就在我和LINQ to SQL交朋友的时候,MS似乎正在从下面拉开地毯 从我的一点研究来看,对于简单的工作来说,EF是一种过度的技能。但是在这次发布之后,继续使用LINQtoSQL还有什么意义吗 在LINQtoSQL的未来之外,这通常不是发出了一个坏信号吗?考虑到微软向墙上扔钻头的速度,早期使用任何新钻头是否合理?(这真是太好了,现在LINQ使用SQL还为时过早!) 对于我从LINQ到SQL的工作,我想我正朝着亚音速前进 更新:一些新观点:Linq to sql LINQ到SQL是死的还是活的?,linq-to-sql,Linq To Sql,就在我和LINQ to SQL交朋友的时候,MS似乎正在从下面拉开地毯 从我的一点研究来看,对于简单的工作来说,EF是一种过度的技能。但是在这次发布之后,继续使用LINQtoSQL还有什么意义吗 在LINQtoSQL的未来之外,这通常不是发出了一个坏信号吗?考虑到微软向墙上扔钻头的速度,早期使用任何新钻头是否合理?(这真是太好了,现在LINQ使用SQL还为时过早!) 对于我从LINQ到SQL的工作,我想我正朝着亚音速前进 更新:一些新观点: 你的问题有一个模棱两可的地方需要解决 林克!=LI
你的问题有一个模棱两可的地方需要解决 林克!=LINQ到SQL 有很多LINQ技术和提供商:
- Linq到SQL李>
- 对实体的Linq李>
- Linq到对象李>
- Linq转换为XML李>
有鉴于此,我认为任何认为“Linq To SQL”缺乏未来的想法都是无关紧要的,因为您在编写Linq查询方面所获得的技能将在将来转移到其他工具。当然,我认为Linq To SQL、Linq To Entities和Linq To[插入第三方ORM]之间的选择是正确的这里提供了一个完美健康的数据访问层方法生态系统,供软件开发人员选择。第三方提供商,如NHibernate、LLBLGen甚至亚音速(不确定他们是否会提供LINQ提供商)肯定会让竞争变得更好、更有趣 话虽如此,微软放弃LINQ to SQL将是非常悲哀的,特别是因为它确实有很多追随者——甚至StackOverflow也是建立在它之上的。1)他们不能“杀死”LINQ to SQL,因为它已经是.net框架的一部分。他们所能做的就是停止向其添加功能。这并不能阻止成千上万已经在使用L2S的开发人员对其进行扩展和改进。一些核心区域很难触摸,但它们已经很坚固,而且很难触摸 2) 其中一个节目显示,他们已经从EFv1的惨败中吸取了一些教训,现在他们正在复制和粘贴许多L2S的好东西到EF中,并假装它是EF的新东西。换句话说,L2S版本2刚刚被“重新命名”为EF 3) LINQ本身(语言集成查询)是自切片冰淇淋以来最好的东西,它可以用于L2S以外的许多其他东西(LINQ到对象、LINQ到实体、LINQ到XML、LINQ到任何东西)。因此,DP集团试图迫使[大量]L2S采用者转向[不太受欢迎且目前存在缺陷的]实体框架,这并不是不学习Linq的理由 还可以看到这条线索(我认为这部分触发了Tim的博客帖子): 更新1:罗杰·詹宁斯(Roger Jennings)在2008年12月发行的Visual Studio杂志封面故事中很好地阐述了这一主题,并对L2S和EF进行了一些比较: 更新2:引用Anders Hejlsberg的话说:“LINQ to SQL没有死。我可以向你保证,它没有死。没有什么会消失。我们从来没有这样做过,也永远不会。”
使用Linq 2 Sql和实体框架时,总是有很大的重叠区域,这总是有点奇怪。我认为L2S只进入.NET3.5版本的唯一原因是,EF是否会看到曙光,这是一个很大的疑问。现在EF1已经推出,不管它是一个非常粗糙的v1,L2已经没有必要了。也许你不应该费心学习Linq to SQL,但仍然有他们将保留的Linq实体。另请参见和那里的评论以及一些相关信息 基本要点似乎是关于实体框架是VisualStudio2010和DotNet4唯一获得主要开发人员时间的状态的评论 我的回答是-嗯。我们都知道这一点。微软在2007年PDC大会上公开表示,LINQ to SQL是SQL Server的短期版本,因为SQL Server没有其他LINQ故事。它只适用于SQL Server。您无法编写LINQ到SQL提供程序-它没有模型。这是一种一次性技术,不可扩展 实体框架是Microsoft构建LINQ提供程序的唯一方法。实体框架被证明是相当有争议的,但我认为这部分是因为LINQtoSQL现在有更好的程序员体验。实体框架将赶上并超越LINQ到SQL,因为它是微软未来的ORM/映射工具 编辑-我只是在网站上写了一篇更详细的文章
EDIT2-IQueryable提供程序-与LINQ到SQL提供程序不同。您可以为任何您喜欢的内容编写自己的IQueryable提供程序。您得不到设计器支持或模型生成。据我所知,没有gui设计器模型可用于LINQ到SQL模型的生成。您不仅应该学习LINQ(System.LINQ.Enumerable和System.LINQ.Queryable),还需要学习.net语言的编程语言增强功能 在C#3.0中,这些包括:
- 扩展方法(在第一个参数上带有此关键字的静态方法)
- 编译器推断类型(var)
- Lambda语法(根据上下文生成匿名方法或表达式)
- 初始化者
- 属性默认实现(简写)
在VB9.0中,有一些内联XML魔法,以及许多其他东西(许多类似于上面的C#列表) 请阅读更多信息。(不,StingyJack,LINQ to SQL需要