예제 #1
0
        /// <summary>
        /// Builder for a more complex query
        /// </summary>
        /// <typeparam name="TResult"></typeparam>
        /// <param name="sqlBuilder"></param>
        /// <param name="cancel"></param>
        /// <returns></returns>
        public IQuerySql <TResult> Build <TResult>(Func <IWhere <T>, IGenerateSql <TResult> > sqlBuilder, CancellationToken?cancel = null)
        {
            var db = GetDb();
            var b  = db.GetSqlBuilder().From <T>();
            var r  = new FluentCommandExecutor <TResult>(db, sqlBuilder(b), Empty.ActionOf <DbCommand>(), true, cancel);

            return(r);
        }
예제 #2
0
        public IQuerySql <T> SelectAllColumns(Expression <Func <T, bool> > criteria = null, CancellationToken?cancel = null)
        {
            var db = GetDb();

            criteria = criteria ?? (x => true);
            var b = db.GetSqlBuilder().From <T>().Where(criteria).SelectAll(useAsterisk: true);
            var r = new FluentCommandExecutor <T>(db, b, Empty.ActionOf <DbCommand>(), true, cancel);

            return(r);
        }