Exemple #1
0
        /// <summary>Groups the query results by the specified criteria.</summary>
        /// <returns>
        /// A new <see cref="T:System.Data.Entity.Core.Objects.ObjectQuery`1" /> instance of type
        /// <see
        ///     cref="T:System.Data.Common.DbDataRecord" />
        /// that is equivalent to the original instance with GROUP BY applied.
        /// </returns>
        /// <param name="keys">The key columns by which to group the results.</param>
        /// <param name="projection">The list of selected properties that defines the projection. </param>
        /// <param name="parameters">Zero or more parameters that are used in this method.</param>
        /// <exception cref="T:System.ArgumentNullException">The  query  parameter is null or an empty string
        /// or the  projection  parameter is null or an empty string.</exception>
        public ObjectQuery <DbDataRecord> GroupBy(string keys, string projection, params ObjectParameter[] parameters)
        {
            Check.NotEmpty(keys, "keys");
            Check.NotEmpty(projection, "projection");
            Check.NotNull(parameters, "parameters");

            return(new ObjectQuery <DbDataRecord>(EntitySqlQueryBuilder.GroupBy(QueryState, Name, keys, projection, parameters)));
        }
 /// <summary>Groups the query results by the specified criteria.</summary>
 /// <returns>
 /// A new <see cref="T:System.Data.Entity.Core.Objects.ObjectQuery`1" /> instance of type
 /// <see cref="T:System.Data.Common.DbDataRecord" />
 /// that is equivalent to the original instance with GROUP BY applied.
 /// </returns>
 /// <param name="keys">The key columns by which to group the results.</param>
 /// <param name="projection">The list of selected properties that defines the projection. </param>
 /// <param name="parameters">Zero or more parameters that are used in this method.</param>
 /// <exception cref="T:System.ArgumentNullException">The  query  parameter is null or an empty string
 /// or the  projection  parameter is null or an empty string.</exception>
 public ObjectQuery <DbDataRecord> GroupBy(
     string keys,
     string projection,
     params ObjectParameter[] parameters)
 {
     Check.NotEmpty(keys, nameof(keys));
     Check.NotEmpty(projection, nameof(projection));
     Check.NotNull <ObjectParameter[]>(parameters, nameof(parameters));
     return(new ObjectQuery <DbDataRecord>(EntitySqlQueryBuilder.GroupBy(this.QueryState, this.Name, keys, projection, parameters)));
 }
        /// <summary>
        ///   This query-builder method creates a new query whose results are the results
        ///   of this query, grouped by some criteria.
        /// </summary>
        /// <param name="keys">
        ///   The group keys.
        /// </param>
        /// <param name="projection">
        ///   The projection list. To project the group, use the keyword "group".
        /// </param>
        /// <param name="parameters">
        ///   An optional set of query parameters that should be in scope when parsing.
        /// </param>
        /// <returns>
        ///   a new ObjectQuery instance.
        /// </returns>
        public ObjectQuery <DbDataRecord> GroupBy(string keys, string projection, params ObjectParameter[] parameters)
        {
            EntityUtil.CheckArgumentNull(keys, "keys");
            EntityUtil.CheckArgumentNull(projection, "projection");
            EntityUtil.CheckArgumentNull(parameters, "parameters");

            if (StringUtil.IsNullOrEmptyOrWhiteSpace(keys))
            {
                throw EntityUtil.Argument(System.Data.Entity.Strings.ObjectQuery_QueryBuilder_InvalidGroupKeyList, "keys");
            }

            if (StringUtil.IsNullOrEmptyOrWhiteSpace(projection))
            {
                throw EntityUtil.Argument(System.Data.Entity.Strings.ObjectQuery_QueryBuilder_InvalidProjectionList, "projection");
            }

            return(new ObjectQuery <DbDataRecord>(EntitySqlQueryBuilder.GroupBy(this.QueryState, this.Name, keys, projection, parameters)));
        }