No se mucho de LinQ pero a simple vista me parece que esos filtros están
mal.
En El 2do ejemplo:
Primero filtras Año >= 2009 y Mes >= 12
Esto debería traer datos del 2009/12
2010/12 2011/12
projectionSubset = (from projection in
ProjectionsService.GetAll()
where (projection.ProjectionYear >= 2009)
&& (projection.ProjectionMonth >= 12)
select projection).ToList<Projection>();
Luego a esta consulta le aplicas un nuevo filtro Año <= 2010 Mes <= 12
Esto
solo trae datos del 2009/12 y 2010/12
projectionSubset = (from projection in projectionSubset
where (projection.ProjectionYear <= 2010)
&& (projection.ProjectionMonth <= 12)
select projection).ToList<Projection>();
En el 1er ejemplo:
El filtro que estas poniendo es el siguiente:
(Año >= 2009 y Mes >= 12) o (Año <= 2010 y Mes <= 12)
Este filtro trae todos los datos menores al 2011, y solo el mes 12 a partir
del 2011, o sea, no filtra casi nada.
projectionSubset = (from projection in ProjectionsService.GetAll()
where (((projection.ProjectionYear >= 2009) && (projection.ProjectionMonth
>= 12))
|| ((projection.ProjectionYear <= 2010) &&
(projection.ProjectionMonth <= 12)))
Yo pondría el filtro de esta manera en este caso
(Año = 2009 y Mes = 12) o (Año = 2010)
Saludos Eugenio
2009/12/16 Leandro Tuttini <[email protected]>:
> hola
>
> les planteo una situacion algo extraña, que la verdad no entiendo porque
no
> funciona no parece muy compleja la situacion
> resulta que tengo un lista de proyecciones de desembolso de prestamos y la
> idea es filtrar por año-mes de inicio y fin
>
> al principio la idea era ahcer algo como esto:
>
> List<Projection> projectionSubset;
>
> projectionSubset = (from projection in
> ProjectionsService.GetAll()
> where (((projection.ProjectionYear >= 2009)
> && (projection.ProjectionMonth >= 12))
> || ((projection.ProjectionYear <=
> 2010) && (projection.ProjectionMonth <= 12)))
> select projection).ToList<Projection>();
>
> pero note que esto no me filtraba correctamente, es mas no filtraba nada
> directamente
>
> luego intente con esta otra forma
>
> List<Projection> projectionSubset;
>
> projectionSubset = (from projection in
> ProjectionsService.GetAll()
> where (projection.ProjectionYear >= 2009)
> && (projection.ProjectionMonth >= 12)
> select projection).ToList<Projection>();
>
> projectionSubset = (from projection in projectionSubset
> where (projection.ProjectionYear <= 2010)
> && (projection.ProjectionMonth <= 12)
> select projection).ToList<Projection>();
>
> pero resulto que solo devolvia las proyecciones del año 2009 y mes 12
> y la del 2010 año 12 pero solo estos dos meses el resto los descarta
>
> sera un tema que el >= y <= en linq no funciona como deberia ?
> me suena extraño
>
> pero bueno notan que estoy haciando algo incorrecto?
>
> la idea es devolver todas la proyecciones entre estos rango de año-mes
>
> gracias
> saludos
>
> ________________________________
> Encontra las mejores recetas con Yahoo! Cocina.
> http://ar.mujer.yahoo.com/cocina/
E-mail clasificado por el Identificador de Spam Inteligente de Terra.
Para modificar la categoría clasificada acceda a su webmail.
Este mensaje ha sido verificado por el E-mail Protegido.
Antivirus actualizado en 17/12/2009 / Versión: 0.95.2/10194