entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

PageResult, consulta con LINQ

Estoy haciendo una SPA en NET MVC 4 C#, resulta que esta consulta en linq funciona perfectamente, pero el PageResult me arroja un count de 74 que no corresponde a la
consulta, ya que si es cierto que hay 74 registros en la tabla, pero si aplico los join solo habrían 65, ya que algunos registros tiene el valor UserId NULL.

pageSize: 15,
Total numero de paginas: 5

/api/requerimiento?$top=15&$skip=60&$orderby=UserName+desc&$inlinecount=allpages
Response (esta sería la última página, en donde devuelve 5 objetos en items, lo que estaría bien, pero el count debería decir 65)
items [ 5 objects ]
nextPageLink null
count 74

la verdad no comprendo como obtiene el valor count, aunque pareciera no afecta, la cierto es que mi paginador lo he creado en javascript knockoutjs, tomando como referencia el valor count devuelto, y si la diferencia fuese de 100 registro se crearían mas paginas inexistentes.

            [Authorize(Roles = "admin,editor,suscriptor")]
            public PageResult<RequerimientoViewModel> Get(ODataQueryOptions<RequerimientoViewModel> options)
            {
                var db = unitOfWork.RequerimientoRepository.context;
                var query = (from r in db.Requerimientos
                             join u in db.UserProfiles on r.UserId equals u.UserId
                             join t in db.Trabajadores on r.TrabajadorID equals t.TrabajadorID
                             join p in db.Personas on t.PersonaID equals p.PersonaID
                             select new RequerimientoViewModel
                             {
                                 Creado = u.UserName,
                                 Nombres = p.Nombres,
                                 ApellidoPaterno = p.ApellidoPaterno,
                                 ApellidoMaterno = p.ApellidoMaterno
                             });

                ODataQuerySettings settings = new ODataQuerySettings()
                {
                    PageSize = 15
                };

                IQueryable results = options.ApplyTo(query.AsQueryable(), settings);

                return new PageResult<RequerimientoViewModel>(
                    results as IEnumerable<RequerimientoViewModel>,
                    Request.GetNextPageLink(),
                    Request.GetInlineCount());
            }

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta