public static ColumnInfo FromPropertyInfo(PropertyInfo propertyInfo, SqlSyntax syntax) { var tbl = syntax.GetTableInfoFromType(propertyInfo.ReflectedType); ColumnInfo result = new ColumnInfo() { Schema = tbl.Schema, TableName = tbl.Name, ColumnName = propertyInfo.SqlColumnName(), PropertyInfo = propertyInfo, DataType = syntax.SqlDataType(propertyInfo), IsNullable = propertyInfo.AllowSqlNull(), IsCalculated = propertyInfo.HasAttribute <CalculatedAttribute>(), Expression = propertyInfo.GetCustomAttribute <CalculatedAttribute>()?.Expression, ModelType = propertyInfo.ReflectedType }; DecimalPrecisionAttribute precisionAttr; if (propertyInfo.HasAttribute(out precisionAttr)) { result.Precision = precisionAttr.Precision; result.Scale = precisionAttr.Scale; } CollateAttribute collateAttr; if (propertyInfo.HasAttribute(out collateAttr)) { result.Collation = collateAttr.Collation; } return(result); }
public DropTable(SqlSyntax syntax, Type modelType, IDbConnection connection = null) : this(syntax, syntax.GetTableInfoFromType(modelType)) { }