我似乎是少数,但老实说我对 linq 不太满意,也看不到我个人发展的任何好处(不是说没有好处,只是根据我的情况提出的个人意见)。
我构建 Web 应用程序(.net、.net mvc)并且我喜欢在存储过程中包含我的部分数据层。我喜欢 sprocs 的一件事是,我可以生成整个数据库以编写脚本,然后扫描我的查询,我可能添加的可读查询,在高级别。
对于那些不喜欢linq的人,你的理由是什么?只是缺乏知识/学习曲线,还是有不使用它的商业案例?
我似乎是少数,但老实说我对 linq 不太满意,也看不到我个人发展的任何好处(不是说没有好处,只是根据我的情况提出的个人意见)。
我构建 Web 应用程序(.net、.net mvc)并且我喜欢在存储过程中包含我的部分数据层。我喜欢 sprocs 的一件事是,我可以生成整个数据库以编写脚本,然后扫描我的查询,我可能添加的可读查询,在高级别。
对于那些不喜欢linq的人,你的理由是什么?只是缺乏知识/学习曲线,还是有不使用它的商业案例?
我实际上确实使用 Linq,但不是用于查询 SQL。我将它用作查询数据表的一种非常简单的方法,例如,查找数据表中的最大值。以前我会为此代码使用 for 循环,但 Linq 使它更整洁,更清楚我的意图。
一旦您意识到 Linq 是一种通用的 .NET 查询语言,它的功能和实用性就会变得更加清晰。
那么,您从不在 C# 代码中对集合进行任何处理吗?在集合、过滤或分组等中查找最大值?我知道我经常这样做。LINQ 让我以一种非常易读、声明性的方式执行此操作(比 SQL、IMO 更易读——查询的顺序更符合逻辑)。
同样,使用 LINQ to XML 查询 XML,使用 LINQ to DataSet 查询数据集等。哦,别忘了使用 PLINQ 进行并行化。
喜欢 LINQ 的理由有很多 :)
最近这里有一个关于是否使用 LINQ 或存储过程的有用讨论,其中包括每种方法的优点和缺点。
有些人对 LINQ to SQL 的未来感到担忧。
我正在使用 LINQ 查询数组或通用列表。foreach
即使我浏览多个列表,它也很容易阅读并且为我节省了很多输入 for -loops 的时间。
最初的发布者将 Linq(用于查询的 lambda 表达式)与 DLinq(用于轻量级数据库的 Linq)混淆了,因为它们几乎被社区同义地使用。
您可以将 Linq 与任何集合一起使用,并在其上使用类似 Sql 的语法。它非常整洁。
是的,您可以使用 DLinq 执行存储过程。请参阅下面的链接
-RVZ
我们还不能使用 Linq,因为我们还在 2.0 上,并且不允许升级到更新的版本。
我还没有为 LINQ 烦恼,因为我没有任何真正的需要。
多年来,我学会了“按需学习”——新技术来去匆匆,以至于你可以浪费大量时间研究最新趋势,只是为了让它在第二年消失。
并不是说 LINQ 会,因为它似乎已经被很好地吸收了,但是只要我的设计是合理的,我就不会因为“旧方式”的编码而失眠。
当然,使用存储过程或 Linq 是您的选择,两者各有利弊。
基本上作为 Linq 的专业人士,您不需要花时间创建数据层,但在存储过程中,您必须为每个实体编写一个新的存储过程(也许您可以为“存储过程地狱”提供通用解决方案但我认为维护起来会很复杂)。而且我也认为存储过程的维护比Linq复杂(当然在你用Linq花了一点时间之后。)
但正如预期的那样,使用存储过程获取数据比使用 Linq 更快。
而以后Oracle等数据库对Linq的支持就会出现;如果您仍然使用存储过程并且您必须更改数据库或者您想要支持另一个数据库,那么您需要编写这些存储过程的 Oracle 和其他数据库版本,我认为那将是一个真正的地狱,但不是在 Linq 中。
我目前正在为 Windows XP Embedded 创建软件。我使用 linq 做了几个尖峰,不得不把它拿出来,因为目前 XP 嵌入式只支持 .Net 3.0 或更低版本,真可惜。工作量不大,但我的代码使用 Linq 看起来比没有使用要好得多。
我还没有使用过 Linq to SQL。我确实尝试了一个 Linq to NHibernate 测试版,当它准备好时,当我必须再次对数据库做一些事情时,这绝对是我的选择。
我讨厌 SQL,并且在过去一年左右一直在使用 LINQ。我绝对喜欢 LINQ 语法而不是 SQL 语法。
我喜欢 LINQ。它易于阅读和书写。我不必担心我的 sql 查询优化。它是一个延迟操作,使它更酷。我可以返回 IQueryable,这很棒。
我工作的公司有一个不使用 Linq(to SQL)的商业案例:
他们喜欢存储过程,因为它们可以在部署后更改,而无需重新编译、重新安装等。
就个人而言,我不太喜欢这种说法。因为很多人可以(并且确实)在客户站点对 sps 进行更改,所以很难提供有效的支持。
Linq 是一项非常好的技术,它使 .net 中的许多任务非常容易和高效(开发时间明智)实现。此外,Linq to SQL 确实为调用存储过程提供了非常好的机制。
现在,缺乏知识/学习曲线(缺乏时间)是问题所在。
我更喜欢使用 SQL 直接(通过存储过程)查询数据库,然后使用 LINQ 对数据进行额外处理,例如分组。