2010-07-08 23 views

Respuesta

8
using (var reader = cmd.ExecuteReader()) 
{ 
    var result = new List<Foo>(); 
    while (reader.Read()) 
    { 
     var foo = new Foo 
     { 
      Prop1 = reader.GetInt32(0), 
      Prop2 = reader.GetString(1), 
     } 
     result.Add(foo); 
    } 
} 
+0

me gusta esto, pero prefiero 'result.Add (nuevo Foo() {Prop1 = reader.GetInt32 (0), Prop2 = reader.GetString (1)});' – Justin

0

También marque esta qestion pedido previamente: How can I easily convert DataReader to List<T>?

Comprobar esto por tipo genérico:

public ConvertToList<T>(SqlDataReader sqldr, int index) 
     { 
      List<T> list = new List<T>(); 

      while (sqldr.Read())   { 
       list.Add((T)sqldr.GetValue(index));    index++; 
      } 

      return list; 
     } 
0

vieja discusión, pero trate de esto en el tamaño.

Escriba con fuerza sus campos y conviértelos en un objeto DbDataRecord. ex:

    Dim _Query = (From row In _Results.Cast(Of DbDataRecord)().AsParallel() 
          Select New uTyping.Profile() With { 
           .Id = row(0), 
           .Firstname = row(6) 
          }).ToList() 
Cuestiones relacionadas