Ignore the null parameter in a Linq query

0

Hi, I have a Json in a controller that filters my view, the issue is that sometimes receives some of the parameters in Null and does not return records as I could do to ignore me if the parameter enters as null?

This is the code:

public JsonResult filtro( int? loca, int? barrio, int? tipo)
    {


        var r = (from e in db.Inmuebles.Include(a => a.Barrios.Localidades).Include(a => a.Barrios).Include(a => a.Imagenes).Include(a => a.Tipo_Inmuebles)
                 where e.Barrios.cod_localidad == loca
                 where e.cod_tipo_inmueble == tipo
                 where e.cod_barrio == barrio
                 select new InmoVista
                 {
                     barrio = e.Barrios.barrio,
                     localidad = e.Barrios.Localidades.localidad,
                     codigo = e.cod_inmueble,
                     tipo = e.Tipo_Inmuebles.tipo_inmueble,
                     calle = e.calle,
                     numero = e.numero,
                     descripcion = e.descripcion
                 }).ToList();
    
asked by matias ludueña 08.11.2016 в 02:26
source

1 answer

1

You should validate if the value is null and cancel the filter

    var r = (from e in db.Inmuebles.Include(a => a.Barrios.Localidades)
                                    .Include(a => a.Barrios)
                                    .Include(a => a.Imagenes)
                                    .Include(a => a.Tipo_Inmuebles)
             where ((loca == null) || (e.Barrios.cod_localidad == loca.Value))
             && ((tipo == null) || (e.cod_tipo_inmueble == tipo.Value))
             && ((barrio == null) || (e.cod_barrio == barrio.Value))
             select new InmoVista
             {
                 barrio = e.Barrios.barrio,
                 localidad = e.Barrios.Localidades.localidad,
                 codigo = e.cod_inmueble,
                 tipo = e.Tipo_Inmuebles.tipo_inmueble,
                 calle = e.calle,
                 numero = e.numero,
                 descripcion = e.descripcion
             }).ToList();

Valid if the parameter is null to see if you apply the filter

    
answered by 08.11.2016 / 02:57
source