none
WEB API (response Body) RRS feed

  • Pregunta

  • Hola buenas tarde tengo la siguiente consulta tengo un método para consultar mis usuarios, pero me retorna un arreglo, y lo que necesito es que retorne un solo registro, alguna sugerencia por favor.

    [HttpPost] public HttpResponseMessage ConsultarInpc(Filtro filtro) { conexion db= new conexion(); var query = db.usuario.Where(p => p.Id == filtro.id & p.Sexo == filtro.sexo); var response = new HttpResponseMessage(HttpStatusCode.OK) { Content = new ObjectContent(query.GetType(), query, Configuration.Formatters.JsonFormatter) }; return response; }

       [

          {

         "Id": 34,

         "Sexo": "Masculino"

          }

        ]

    este es el resultado que me devuelve y es conrrecto, pero lo que necesito es solo esto, sin corchetes, ya que siempre devolverá un solo valor, alguna sugerencia, gracias

       {

         "Id": 34,

         "Sexo": "Masculino"

          }

    miércoles, 8 de marzo de 2017 22:46

Respuestas

  • Hola D. Velazquez,

    Si te fijas bien, estás filtrando usando el método Where el cual le indica a un contexto 'devuélveme los registros dónde se cumpla esta condición'. El método no sabe si existe uno o varios registros que cumplan con la condición.

    - El 'Where' retorna una collección de elementos que cumplan con la condición.

    Por lo que si quieres obtener el primer resultado sería :

     var query = db.usuario.Where(p => p.Id == filtro.id & p.Sexo == filtro.sexo).FirstOrDefault();

    Es más, si estás seguro que siempre retornará un registro puedes usar Single() o SingleOrDefault().

     var query = db.usuario.Where(p => p.Id == filtro.id & p.Sexo == filtro.sexo).Single();

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    • Marcado como respuesta D. Velazquez jueves, 9 de marzo de 2017 14:52
    miércoles, 8 de marzo de 2017 23:14

Todas las respuestas

  • Hola D. Velazquez,

    Si te fijas bien, estás filtrando usando el método Where el cual le indica a un contexto 'devuélveme los registros dónde se cumpla esta condición'. El método no sabe si existe uno o varios registros que cumplan con la condición.

    - El 'Where' retorna una collección de elementos que cumplan con la condición.

    Por lo que si quieres obtener el primer resultado sería :

     var query = db.usuario.Where(p => p.Id == filtro.id & p.Sexo == filtro.sexo).FirstOrDefault();

    Es más, si estás seguro que siempre retornará un registro puedes usar Single() o SingleOrDefault().

     var query = db.usuario.Where(p => p.Id == filtro.id & p.Sexo == filtro.sexo).Single();

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    • Marcado como respuesta D. Velazquez jueves, 9 de marzo de 2017 14:52
    miércoles, 8 de marzo de 2017 23:14
  • perfecto con eso se solucionó mi problema muchísimas gracias, buen dia
    jueves, 9 de marzo de 2017 14:52