照传统的ado.net 是建一个DbConnection 、DbCommand再是DataReader 用DataReader.Read()方法通过while循环读取,在读取中不能关闭DbConnection,但为什么 linq to sql 和Entity等就可以直接foreach的形式读取呢?不知道是怎么的一个实现原理
foreach 的时候是调用GetEnumerator()方法进行循环,在到这个方法的时候开始读取数据 并迭代返回 yield return obj