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());
}