|
|
@@ -294,15 +294,29 @@ namespace InABox.Core
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
+ private static Type ConvertColumnTypeToDataColumnType(Type type)
|
|
|
+ {
|
|
|
+ if (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(Nullable<>))
|
|
|
+ {
|
|
|
+ return type.GenericTypeArguments[0];
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ return type;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
public DataTable ToDataTable(string name = "", IColumns? additionalColumns = null)
|
|
|
{
|
|
|
var result = new DataTable(name);
|
|
|
foreach (var column in Columns)
|
|
|
- result.Columns.Add(column.ColumnName.Replace('.', '_'), column.DataType);
|
|
|
+ {
|
|
|
+ result.Columns.Add(column.ColumnName.Replace('.', '_'), ConvertColumnTypeToDataColumnType(column.DataType));
|
|
|
+ }
|
|
|
if(additionalColumns != null)
|
|
|
{
|
|
|
foreach (var column in additionalColumns)
|
|
|
- result.Columns.Add(column.Property.Replace('.', '_'), column.Type);
|
|
|
+ result.Columns.Add(column.Property.Replace('.', '_'), ConvertColumnTypeToDataColumnType(column.Type));
|
|
|
}
|
|
|
|
|
|
//result.Columns["ID"].Unique = true;
|