当我打电话给这个代码:
using (var connection = new sqlConnection(connectionString)) { var command = new sqlCommand("SELECT * FROM Table",connection); connection.Open(); using (var reader = command.ExecuteReader()) { while(reader.Read()) { // Do something here } } }
内部发生什么这在网络层面如何工作?它会为每次调用Read或者是在内部执行任何批量读取来创建数据库的新的往返行程吗?
我在问,因为我只是读ODP.NET在OracleCommand和OracleDataReader中提供了FetchSize属性,我明白为定义每一次往返数据库应该预先载入多少条记录.我不知道sql Server是否以类似的方式工作,如果有一些类似的行为可以在某个地方进行配置.我在sqlCommand,sqlDataReader或CommandBehavior中没有找到任何这样的配置.