private static SqlMetaData CreateColumnMetaData(PropertyInfo propertyInfo)
{
SqlMetaData columnMetaData;
var columnSqlDbType = propertyInfo.GetColumnSqlDbTypefromAttributeOrClr();
switch (columnSqlDbType)
{
case SqlDbType.Binary:
case SqlDbType.Char:
case SqlDbType.NChar:
case SqlDbType.Image:
case SqlDbType.VarChar:
case SqlDbType.NVarChar:
case SqlDbType.Text:
case SqlDbType.NText:
case SqlDbType.VarBinary:
columnMetaData = CreateTextColumnMetaData(propertyInfo, columnSqlDbType);
break;
case SqlDbType.Decimal:
columnMetaData = CreateDecimalColumnMetaData(propertyInfo, columnSqlDbType);
break;
default:
columnMetaData = CreateDefaultColumnMetaData(propertyInfo, columnSqlDbType);
break;
}
return columnMetaData;
}