public static Field GetField(this SqlDataTypeReference sqlDataTypeReference, string name, bool isNullable, ILogger logger, SchemaFile file) { var type = sqlDataTypeReference.GetFieldType(logger, file); switch (type) { case FieldType.String: return(new StringField() { Name = name, Type = type, IsNullable = isNullable, Length = sqlDataTypeReference.GetStringLength(logger), }); case FieldType.Decimal: case FieldType.Numeric: return(new DecimalField() { Name = name, Type = type, IsNullable = isNullable, Precision = sqlDataTypeReference.GetPrecision(logger), Scale = sqlDataTypeReference.GetScale(logger), }); default: return(new DefaultField() { Name = name, Type = type, IsNullable = isNullable, }); } }