public static object FromDbFormat(Type type, object value)
{
if (Convert.IsDBNull (value))
value = null;
if (type == typeof (DateTime)) {
return value == null
? DateTime.MinValue
: DateTimeUtil.ToDateTime (Convert.ToInt64 (value));
} else if (type == typeof (TimeSpan)) {
return value == null
? TimeSpan.MinValue
: TimeSpan.FromMilliseconds (Convert.ToInt64 (value));
} else if (value == null) {
if (type.IsValueType) {
return Activator.CreateInstance (type);
} else {
return null;
}
} else if (type.IsEnum) {
return Enum.ToObject (type, value);
} else if (type == typeof (bool)) {
return ((long)value == 1);
} else {
return Convert.ChangeType (value, type);
}
}