private EnumerableRowCollection <DataRow> Get(
            SqlColumnCollection column   = null,
            SqlJoinCollection join       = null,
            SqlWhereCollection where     = null,
            SqlOrderByCollection orderBy = null,
            SqlParamCollection param     = null,
            Sqls.TableTypes tableType    = Sqls.TableTypes.Normal,
            bool distinct    = false,
            int top          = 0,
            int offset       = 0,
            int pageSize     = 0,
            bool history     = false,
            bool countRecord = false,
            IEnumerable <Aggregation> aggregations = null)
        {
            var statements = new List <SqlStatement>
            {
                Rds.SelectBinaries(
                    dataTableName: "Main",
                    column: column ?? Rds.BinariesDefaultColumns(),
                    join: join ?? Rds.BinariesJoinDefault(),
                    where : where,
                    orderBy: orderBy,
                    param: param,
                    tableType: tableType,
                    distinct: distinct,
                    top: top,
                    offset: offset,
                    pageSize: pageSize,
                    countRecord: countRecord)
            };

            if (aggregations != null)
            {
                statements.AddRange(Rds.BinariesAggregations(
                                        aggregations: aggregations,
                                        join: join ?? Rds.BinariesJoinDefault(),
                                        where : where));
            }
            var dataSet = Rds.ExecuteDataSet(
                transactional: false,
                statements: statements.ToArray());

            Aggregations.Set(dataSet, aggregations);
            return(dataSet.Tables["Main"].AsEnumerable());
        }