Advertisement
Guest User

Untitled

a guest
Oct 31st, 2014
170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.14 KB | None | 0 0
  1. public class SqlTypeMapper
  2.     {
  3.         public Type GetClrType(string sqlTypeName, bool isNullable)
  4.         {
  5.             Type baseType = this.GetClrBaseType(sqlTypeName);
  6.  
  7.             if (baseType.IsValueType && isNullable)
  8.                 return typeof(Nullable<>).MakeGenericType(baseType);
  9.  
  10.             return baseType;
  11.         }
  12.         private Type GetClrBaseType(string sqlTypeName)
  13.         {
  14.             switch (sqlTypeName)
  15.             {
  16.                 case "bigint":
  17.                     return typeof(long);
  18.                 case "binary":
  19.                 case "image":
  20.                 case "rowversion":
  21.                 case "timestamp":
  22.                 case "varbinary":
  23.                     return typeof(byte[]);
  24.                 case "bit":
  25.                     return typeof(bool);
  26.                 case "char":
  27.                 case "nchar":
  28.                 case "ntext":
  29.                 case "nvarchar":
  30.                 case "text":
  31.                 case "varchar":
  32.                     return typeof(string);
  33.                 case "date":
  34.                 case "datetime":
  35.                 case "datetime2":
  36.                 case "smalldatetime":
  37.                     return typeof(DateTime);
  38.                 case "datetimeoffset":
  39.                     return typeof(DateTimeOffset);
  40.                 case "decimal":
  41.                 case "money":
  42.                 case "numeric":
  43.                 case "smallmoney":
  44.                     return typeof(decimal);
  45.                 case "float":
  46.                     return typeof(double);
  47.                 case "int":
  48.                     return typeof(int);
  49.                 case "real":
  50.                     return typeof(float);
  51.                 case "smallint":
  52.                     return typeof(short);
  53.                 case "time":
  54.                     return typeof(TimeSpan);
  55.                 case "tinyint":
  56.                     return typeof(byte);
  57.                 case "uniqueidentifier":
  58.                     return typeof(Guid);
  59.                 default:
  60.                     throw new InvalidOperationException("Unknown type '" + sqlTypeName + "'.");
  61.             }
  62.         }
  63.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement