in MySQL.Data/src/Field.cs [289:355]
public static IMySqlValue GetIMySqlValue(MySqlDbType type)
{
switch (type)
{
case MySqlDbType.Byte:
return new MySqlByte();
case MySqlDbType.UByte:
return new MySqlUByte();
case MySqlDbType.Year:
case MySqlDbType.Int16:
return new MySqlInt16();
case MySqlDbType.UInt16:
return new MySqlUInt16();
case MySqlDbType.Int24:
case MySqlDbType.Int32:
return new MySqlInt32(type, true);
case MySqlDbType.UInt24:
case MySqlDbType.UInt32:
return new MySqlUInt32(type, true);
case MySqlDbType.Bit:
return new MySqlBit();
case MySqlDbType.Int64:
return new MySqlInt64();
case MySqlDbType.UInt64:
return new MySqlUInt64();
case MySqlDbType.Time:
return new MySqlTimeSpan();
case MySqlDbType.Date:
case MySqlDbType.DateTime:
case MySqlDbType.Newdate:
case MySqlDbType.Timestamp:
return new MySqlDateTime(type, true);
case MySqlDbType.Decimal:
case MySqlDbType.NewDecimal:
return new MySqlDecimal();
case MySqlDbType.Float:
return new MySqlSingle();
case MySqlDbType.Double:
return new MySqlDouble();
case MySqlDbType.Set:
case MySqlDbType.Enum:
case MySqlDbType.String:
case MySqlDbType.VarString:
case MySqlDbType.VarChar:
case MySqlDbType.Text:
case MySqlDbType.TinyText:
case MySqlDbType.MediumText:
case MySqlDbType.LongText:
case MySqlDbType.JSON:
case (MySqlDbType)Field_Type.NULL:
return new MySqlString(type, true);
case MySqlDbType.Geometry:
return new MySqlGeometry(type, true);
case MySqlDbType.Blob:
case MySqlDbType.MediumBlob:
case MySqlDbType.LongBlob:
case MySqlDbType.TinyBlob:
case MySqlDbType.Binary:
case MySqlDbType.VarBinary:
case MySqlDbType.Vector:
return new MySqlBinary(type, true);
case MySqlDbType.Guid:
return new MySqlGuid();
default:
throw new MySqlException("Unknown data type");
}
}