示例#1
0
        private static void GetDistinctSalesOrderDetails(Db db, DbAggregateQueryBuilder queryBuilder, SalesOrderDetail model)
        {
            SalesOrderDetail d;

            queryBuilder.From(db.SalesOrderDetail, out d)
            .AutoSelect()
            .OrderBy(d.SalesOrderDetailID);
        }
示例#2
0
        /// <summary>
        /// Creates aggregate database query for specified model.
        /// </summary>
        /// <typeparam name="T">Type of the model.</typeparam>
        /// <param name="_">The specified model.</param>
        /// <param name="initializer">The model initializer.</param>
        /// <param name="buildQuery">The aggregate query builder.</param>
        /// <returns>The created database query.</returns>
        public DbQuery <T> CreateAggregateQuery <T>(T _, Action <T> initializer, Action <DbAggregateQueryBuilder, T> buildQuery)
            where T : Model, new()
        {
            buildQuery.VerifyNotNull(nameof(buildQuery));

            var model = _ == null ? new T() : (_.DataSource == null ? _ : _.MakeCopy(false));

            model.Initialize(initializer);
            var builder = new DbAggregateQueryBuilder(model);

            buildQuery(builder, model);
            return(PerformCreateQuery(model, builder.BuildQueryStatement(null)));
        }