Exemplo n.º 1
0
        private int Count(SQLServerVisitor <T> visitor)
        {
            IEnumerable <Parameter> parameters;
            var sql = BuildQuerySQL(visitor, out parameters);

            if (visitor.Skip != 0)
            {
                string orderBy = "Id DESC";
                if (visitor.OrderClauses != null && visitor.OrderClauses.Count() > 0)
                {
                    orderBy = ToOrderString(visitor);
                }

                sql = string.Format(@"SELECT * 
                    FROM (
                        SELECT *,ROW_NUMBER() OVER(ORDER BY {0}) AS RowIndex
                            FROM ({1})content
                         )paging
                    WHERE (RowIndex > {2})", orderBy, sql, visitor.Skip);
            }
            sql = string.Format("SELECT COUNT(Id) FROM ({0})T", sql);

            var command = BuildCommand(sql, parameters);

            return((int)SQLServerHelper.ExecuteScalar(ContentQuery.Repository, command));
        }