protected virtual string TypeName(DbType type) {
switch (type) {
case DbType.AnsiString:
return "varchar";
case DbType.AnsiStringFixedLength:
return "char";
case DbType.Binary:
return "varbinary(max)";
case DbType.Boolean:
return "boolean";
case DbType.Byte:
return "tinyint unsigned";
case DbType.Currency:
return "money";
case DbType.Date:
return "date";
case DbType.DateTime:
return "datetime";
case DbType.DateTime2:
return "datetime2";
case DbType.DateTimeOffset:
return "datetimeoffset";
case DbType.Decimal:
return "decimal";
case DbType.Double:
return "float";
case DbType.Guid:
return "char(36)";
case DbType.Int16:
return "smallint";
case DbType.Int32:
return "int";
case DbType.Int64:
return "bigint";
case DbType.Single:
return "real";
case DbType.String:
return "nvarchar";
case DbType.StringFixedLength:
return "nchar";
case DbType.Time:
return "time";
case DbType.SByte:
return "tinyint";
case DbType.UInt16:
return "smallint unsigned";
case DbType.UInt32:
return "int unsigned";
case DbType.UInt64:
return "bigint unsigned";
case DbType.Xml:
return "xml";
default:
throw new NotSupportedException("Unsupported type " + type);
}
}