public async Task <IList <DictEntity> > Query(DictQueryModel model)
        {
            var paging = model.Paging();

            var query = Db.Find();

            if (!paging.OrderBy.Any())
            {
                query.OrderByDescending(m => m.Id);
            }

            var result = await query.LeftJoin <AccountEntity>((x, y) => x.CreatedBy == y.Id)
                         .Select((x, y) => new { x, Creator = y.Name })
                         .PaginationAsync(paging);

            model.TotalCount = paging.TotalCount;

            return(result);
        }
Beispiel #2
0
        private INetSqlQueryable BuildQuery(DictQueryModel model, out Paging paging)
        {
            paging = model.Paging();

            var query = Db.Find();

            query.WhereNotNull(model.GroupCode, m => m.GroupCode == model.GroupCode);
            query.WhereNotNull(model.Code, m => m.Code == model.Code);
            query.WhereNotNull(model.Name, m => m.Name.Contains(model.Name));

            var joinQuery = query.LeftJoin <AccountEntity>((x, y) => x.CreatedBy == y.Id)
                            .LeftJoin <DictGroupEntity>((x, y, z) => x.GroupCode == z.Code)
                            .Select((x, y, z) => new { x, Creator = y.Name, GroupName = z.Name });

            if (!paging.OrderBy.Any())
            {
                joinQuery.OrderByDescending((x, y, z) => x.Id);
            }

            return(joinQuery);
        }
Beispiel #3
0
        public async Task <IList <DictEntity> > Query(DictQueryModel model)
        {
            var paging = model.Paging();

            var query = Db.Find();

            query.WhereNotNull(model.GroupCode, m => m.GroupCode == model.GroupCode);
            query.WhereNotNull(model.Name, m => m.Name.Contains(model.Name));
            query.WhereNotNull(model.Code, m => m.Code == model.Code);

            var joinQuery = query.LeftJoin <AccountEntity>((x, y) => x.CreatedBy == y.Id)
                            .LeftJoin <DictGroupEntity>((x, y, z) => x.GroupCode == z.Code)
                            .Select((x, y, z) => new { x, Creator = y.Name, GroupName = z.Name });

            if (!paging.OrderBy.Any())
            {
                joinQuery.OrderByDescending((x, y, z) => x.Id);
            }

            var list = await joinQuery.PaginationAsync(paging);

            model.TotalCount = paging.TotalCount;
            return(list);
        }