DataReader可以缓存数据,但是DataReader不能够直接缓存,例如
SqlDataReader instance = Cache["key"] as SqlDataReader ;
if (instance == null)
{ instance = BllMethodToGetInstance();
Cache.Insert(key, instance, ...); }
return instance;
类似这样的代码是不行的,因为DataReader需要一直占用数据库连接,一个常用方法是将数据库数据读取出来然后存放在ArrayList类等里,然后缓存类