Ejemplo n.º 1
0
        /// <summary>
        /// 查询指定实体的孩子。
        /// </summary>
        /// <param name="entity">当前实体。</param>
        /// <param name="predicate">用于测试每个元素是否满足条件的函数。</param>
        /// <param name="recurrence">是否递归出所有孩子。</param>
        /// <returns></returns>
        public virtual IQueryable <TEntity> QueryChildren(TEntity entity, Expression <Func <TEntity, bool> > predicate = null, bool recurrence = false)
        {
            var expression = TreeExpressionBuilder.BuildQueryChildrenExpression(metaTree, entity, predicate, recurrence);

            var querable = QueryHelper.CreateQuery <TEntity>(repository.Provider, expression);

            var orderExp = TreeExpressionBuilder.BuildOrderByExpression <TEntity>(metaTree, querable.Expression);

            return(repository.Provider.CreateQuery <TEntity>(orderExp));
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 查询指定实体的孩子。
        /// </summary>
        /// <param name="entity">当前实体。</param>
        /// <param name="predicate">用于测试每个元素是否满足条件的函数。</param>
        /// <param name="recurrence">是否递归出所有孩子。</param>
        /// <returns></returns>
        public virtual IQueryable <TEntity> QueryChildren(TEntity entity, Expression <Func <TEntity, bool> > predicate = null, bool recurrence = false)
        {
            var expression = TreeExpressionBuilder.BuildQueryChildrenExpression <TEntity>(GetMetadata(), entity, predicate, recurrence);

            return(QueryHelper.CreateQuery <TEntity>(Provider, expression));
        }