/// <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))); }