.NET - Generische Sammlung in DataTable konvertieren

Ich versuche zu konvertieren, eine generische collection (Liste) zu einer DataTable. Ich fand den folgenden code, um mir zu helfen, dies zu tun:

//Sorry about indentation
public class CollectionHelper
{
private CollectionHelper()
{
}

//this is the method I have been using
public static DataTable ConvertTo<T>(IList<T> list)
{
    DataTable table = CreateTable<T>();
    Type entityType = typeof(T);
    PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(entityType);

    foreach (T item in list)
    {
        DataRow row = table.NewRow();

        foreach (PropertyDescriptor prop in properties)
        {
            row[prop.Name] = prop.GetValue(item);
        }

        table.Rows.Add(row);
    }

    return table;
}    

public static DataTable CreateTable<T>()
{
    Type entityType = typeof(T);
    DataTable table = new DataTable(entityType.Name);
    PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(entityType);

    foreach (PropertyDescriptor prop in properties)
    {
        //HERE IS WHERE THE ERROR IS THROWN FOR NULLABLE TYPES
        table.Columns.Add(prop.Name, prop.PropertyType);
    }

    return table;
}
}

Mein problem ist, dass ich beim ändern einer der Eigenschaften der MySimpleClass zu einem nullable-Typ, bekomme ich die folgende Fehlermeldung:

DataSet does not support System.Nullable<>.

Wie kann ich das mit Nullable-Eigenschaften/Feldern in meiner Klasse?

InformationsquelleAutor der Frage Ronnie Overby | 2009-03-31

Schreibe einen Kommentar