public IEnumerable <TEntity> Take(IStorageDbConnection conn, int take, IEnumerable <Expression <Func <TEntity, object> > > selectFields, WhereClauseResult whereClause, OrderbyClauseResult orderbyClause, IDbTransaction tr)
        {
            if (conn == null)
            {
                throw new ArgumentNullException(nameof(conn));
            }

            var result = ConstructTakeSql(take, selectFields, whereClause, orderbyClause.IsNull ? CreateDefaultOrderbyClause() : orderbyClause);

            conn.TextWriter.WriteSql(result.CommandText);
            return(conn.Query <TEntity>(result.CommandText, result.Parameters, tr).AsList());
        }
Example #2
0
        public TEntity SingleOrDefault(IStorageDbConnection conn, IEnumerable <Expression <Func <TEntity, object> > > selectFields, Expression <Func <TEntity, object> > id, TKey value, IDbTransaction tr)
        {
            if (conn == null)
            {
                throw new ArgumentNullException(nameof(conn));
            }
            if (id == null)
            {
                throw new ArgumentNullException(nameof(id));
            }

            var result = ConstructSingleSql(selectFields, id, value);

            conn.TextWriter.WriteSql(result.CommandText);
            return(conn.Query <TEntity>(result.CommandText, result.Parameters, tr).SingleOrDefault());
        }