Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class SqlTypeMapper
- {
- public Type GetClrType(string sqlTypeName, bool isNullable)
- {
- Type baseType = this.GetClrBaseType(sqlTypeName);
- if (baseType.IsValueType && isNullable)
- return typeof(Nullable<>).MakeGenericType(baseType);
- return baseType;
- }
- private Type GetClrBaseType(string sqlTypeName)
- {
- switch (sqlTypeName)
- {
- case "bigint":
- return typeof(long);
- case "binary":
- case "image":
- case "rowversion":
- case "timestamp":
- case "varbinary":
- return typeof(byte[]);
- case "bit":
- return typeof(bool);
- case "char":
- case "nchar":
- case "ntext":
- case "nvarchar":
- case "text":
- case "varchar":
- return typeof(string);
- case "date":
- case "datetime":
- case "datetime2":
- case "smalldatetime":
- return typeof(DateTime);
- case "datetimeoffset":
- return typeof(DateTimeOffset);
- case "decimal":
- case "money":
- case "numeric":
- case "smallmoney":
- return typeof(decimal);
- case "float":
- return typeof(double);
- case "int":
- return typeof(int);
- case "real":
- return typeof(float);
- case "smallint":
- return typeof(short);
- case "time":
- return typeof(TimeSpan);
- case "tinyint":
- return typeof(byte);
- case "uniqueidentifier":
- return typeof(Guid);
- default:
- throw new InvalidOperationException("Unknown type '" + sqlTypeName + "'.");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement