La meilleure méthode à utiliser IDataReader comme IEnumerable<T>?

J'ai besoin d'utiliser Linq sur toute IDataReader implémentations comme ce

var c = sqlDataReader.AsEnumerable().Count();

Exemple:

public abstract class Test
{
    public abstract SqlDataReader GetSqlDataReader();

    public void Foo()
    {
        SqlDataReader sqlDataReader = GetSqlDataReader();
        IEnumerable<SqlDataReader> sqlEnumerable = sqlDataReader.AsEnumerable();
        var c = sqlEnumerable.Count();
        var s = sqlEnumerable.Sum();
        SqlDataReader first = sqlEnumerable.First();
        var t = first.GetSqlXml(10);
    }
}

Quelle est la meilleure méthode pour écrire cela.
Veuillez écrire votre code.

InformationsquelleAutor b2Lord | 2011-08-04