2010-07-08 12 views

Antwort

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

Ich mag das, aber lieber 'result.Add (new Foo() {Prop1 = reader.GetInt32 (0), PROP2 = reader.GetString (1)});' – Justin

0

Überprüfen Sie auch diese vorher gefragt qestion: How can I easily convert DataReader to List<T>?

prüfen diese für generische Typ:

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

Alte Diskussion, aber diese für Größe anprobieren.

Geben Sie Ihre Felder stark ein und wandeln Sie Ihre Zeilen in ein DbDataRecord-Objekt um. ex:

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