基于集合的执行; SQL和.NET
在SQL中,应始终努力进行基于集合的操作而不是基于迭代的(即循环)。在.NET中,我们经常循环集合和对象。 .NET中是否有允许基于集合处理的命令,或者是基于迭代的所有命令? (我想起了
DataAdapter.Fill
如何调用DataReader
迭代结果集中的每条记录)。我并不十分熟悉LINQ
,但我的猜测是它的实现只是掩盖了幕后发生的迭代。
更新:
澄清一点:我并不是说自己在这里有任何天才,我不是第二个猜测让我的人生编程变得更好的优秀人才。我只是在询问是否有执行基于集合的操作的命令,比如SQLdoes3ѭ时的命令,而foreach(var item in obj) { ... }
则显然是在迭代对象。如果他们使用循环,SQL开发人员就会受到严厉批评,但在.NET中,我们会一直使用它们。作为一个在SQL和.NET上都很重要的开发者,我在问.NET中是否有任何替代方法可以完全避免循环。
没有找到相关结果
已邀请:
2 个回复
盛虱
降女陷费券
语句调用
。 这是因为LINQ-to-SQL以IQueryable< T>开头(其中T是一个充当表的代理的类),并且您应用于IQueryable<>的每个LINQ操作都返回另一个IQueryable<>。在幕后,LINQ根本不访问数据库,而是建立一个越来越复杂的LINQ表达式。当您最终要求枚举结果时,LINQ将获取整个表达式并将其转换为SQL查询,该查询作为单个请求进入数据库。