Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
 public DropTable(SqlSyntax syntax, Type modelType, IDbConnection connection = null) : this(syntax, syntax.GetTableInfoFromType(modelType))
 {
 }