public IQueryable <TResult> GetParents <TResult>(Expression <Func <TEntity, bool> > startQuery, Expression <Func <TEntity, TResult> > selector)
            where TResult : class
        {
            var entityType = Context.Model.FindEntityType(typeof(TEntity).FullName);

            return(EfCoreRepositoryHelper.TreeQuery <TEntity, TPrimaryKey, TResult>(_repositoryHelper, Table, entityType, startQuery, selector, null, true, null, 0, true));
        }
        public IQueryable <TEntity> GetSiblings(TPrimaryKey id, string orderBySilbing = null)
        {
            TEntity theEntity = Get(id);

            return(Table.Where(EfCoreRepositoryHelper.BuildEqualsPredicate <TEntity>(nameof(ITreeEntity.Pid), theEntity.Pid)));//t => t.Pid == theEntity.Pid);
            // 构造表达式;
        }
        public IQueryable <TEntity> GetParents(string id)
        {
            var entityType = Context.Model.FindEntityType(typeof(TEntity).FullName);

            if (_repositoryHelper != null)
            {
                return(EfCoreRepositoryHelper.TreeQuery <TEntity, string>(_repositoryHelper, Table, entityType, t => t.Id.Equals(id), null, true));
            }
            return(EfCoreRepositoryHelper.TreeQuery <TEntity, string>(_repositoryHelper.ProviderName, Table, entityType, t => t.Id.Equals(id), null, true));
        }
        public IQueryable <TEntity> GetAllChildren(Expression <Func <TEntity, bool> > where, bool startQuery = false, string orderBySilbing = null)
        {
            var entityType = Context.Model.FindEntityType(typeof(TEntity).FullName);

            if (startQuery)
            {
                return(EfCoreRepositoryHelper.TreeQuery <TEntity, string>(_repositoryHelper.ProviderName, Table, entityType, where, null, false, orderBySilbing, 0, distinct: true));
            }
            return(EfCoreRepositoryHelper.TreeQuery <TEntity, string>(_repositoryHelper.ProviderName, Table, entityType, t => t.Pid == null, where, false));
        }
        public IQueryable <TEntity> GetChildren(string id, bool recursion = false, Expression <Func <TEntity, bool> > where = null, string orderBySilbing = null)
        {
            if (recursion)
            {
                var entityType = Context.Model.FindEntityType(typeof(TEntity).FullName);
                return(EfCoreRepositoryHelper.TreeQuery <TEntity, string>(_repositoryHelper.ProviderName, Table, entityType, ts => ts.Id.Equals(id), where, false, orderBySilbing));
            }

            IQueryable <TEntity> result = Table;

            if (where != null)
            {
                result = result.Where(where);
            }
            return(result.Where(t => t.Pid == id));
        }
예제 #6
0
        public override IPageResult <TEntity> GetSome(Func <IQueryable <TEntity>, IQueryable <TEntity> > queryFunc, IPageInfo pageInfo, params string [] metaData)
        {
            var entityType = Context.Model.FindEntityType(typeof(TEntity).FullName);

            return(EfCoreRepositoryHelper.GetSome(Table, entityType, queryFunc, pageInfo, metaData));
        }
        public IEnumerable <string> GetChildrenRecursion(Expression <Func <TEntity, bool> > startQuery)
        {
            var entityType = Context.Model.FindEntityType(typeof(TEntity).FullName);

            return(EfCoreRepositoryHelper.TreeQuery <TEntity, string>(_repositoryHelper, Table, entityType, startQuery, null, false, null, 0, true).Select(t => t.Id));
        }
        public IEnumerable <TPrimaryKey> GetParents(Expression <Func <TEntity, bool> > startQuery)
        {
            var entityType = Context.Model.FindEntityType(typeof(TEntity).FullName);

            return(EfCoreRepositoryHelper.TreeQuery <TEntity, TPrimaryKey>(_repositoryHelper, Table, entityType, startQuery, null, true, null, 0, true).Select(s => s.Id));
        }