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

 

Responder a