首页新闻找找看学习计划

IQueryable<out T> 这种直接foreach读取数据是怎么实现的

0
[已解决问题] 解决于 2012-01-30 13:39

照传统的ado.net 是建一个DbConnection 、DbCommand再是DataReader 用DataReader.Read()方法通过while循环读取,在读取中不能关闭DbConnection,但为什么 linq to sql 和Entity等就可以直接foreach的形式读取呢?不知道是怎么的一个实现原理

sixserve的主页 sixserve | 初学一级 | 园豆:17
提问于:2012-01-06 13:33
< >
分享
最佳答案
0

foreach 的时候是调用GetEnumerator()方法进行循环,在到这个方法的时候开始读取数据 并迭代返回 yield return obj

sixserve | 初学一级 |园豆:17 | 2012-01-12 13:55
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册