Bra*_*rad 3 .net sql iteration set-based
在SQL中,应该总是努力进行基于集合的操作而不是基于迭代的(即循环).在.NET中,我们经常循环集合和对象..NET中是否有允许基于集合处理的命令,或者是基于迭代的所有命令?(我想起了如何DataAdapter.Fill调用DataReader遍历结果集中每条记录的调用).我并不十分熟悉LINQ,但我的猜测是它的实现只会掩盖幕后发生的迭代.
更新:
澄清一点:我并不是说自己在这里有任何天才,我不是第二个猜测让我的人生编程变得更好的优秀人才.我只是在询问是否存在执行基于集合的操作的命令,就像SQL在您执行操作时所做的那样UPDATE,foreach(var item in obj) { ... }明显地在对象中进行迭代.如果他们使用循环,SQL开发人员就会受到严厉批评,但在.NET中,我们会一直使用它们.作为一个在SQL和.NET上都很重要的开发者,我在问.NET中是否有任何替代方法可以完全避免循环.
我对LINQ并不十分熟悉,但我的猜测是它的实现只是掩盖了幕后发生的迭代.
您如何看待SQL呢?并不是迭代不会发生.这是你如何在代码中表达你的意图的问题.基于集合和声明性操作告诉平台您想要什么,然后将其留给平台以确定如何最好地完成它.它的工作原理是因为允许这种代码的平台是他们所在领域的专家系统,所以它比人类希望的要好得多.另一方面,命令式或程序性代码告诉平台确切地做什么以及如何做.这样可以减少机器优化的空间,通常需要更多代码,并且更容易出错.