Tôi đang cố gắng chuyển đổi một tập hợp chung (Danh sách) thành một DataTable. Tôi đã tìm thấy mã sau để giúp tôi thực hiện việc này:
// 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;
}
}
Vấn đề của tôi là khi tôi thay đổi một trong các thuộc tính của MySimpleClass thành kiểu nullable, tôi gặp lỗi sau:
DataSet does not support System.Nullable<>.
Làm cách nào để thực hiện việc này với các thuộc tính / trường Nullable trong lớp của tôi?