none
Consulta ultimo registro RRS feed

  • Pregunta


  • Tengo que obtener el registro mas actualizado desde la siguiente tabla

    introducir la descripción de la imagen aquí

    para la consulta del registro mas actualizado (el de fecha mas reciente) tengo la siguiente sentencia

    contexto.Set<Tabla1>().LastOrDefault(x => x.Id_Registro == idRegistro);

    esta correcta esta forma de consultar por este ultimo registro? o tengo que aplicar otro filtro a la consulta? en este caso, como deberia hacer este filtro?

    Saludos y gracias

    miércoles, 22 de marzo de 2017 13:26

Respuestas

  • Luis Gabriel Fabres,

    La consulta Linq que muestras retornará el último elemento de la secuencia sin ningún orden en especial, para definir el orden debes utilizar el método de extensión OrderBy()

    context.Set<Tabla1>().Where(x => x.Id_Registro == idRegistro).OrderByDescending(x => x.Fecha)
                                .FirstOrDefault();

    ¿Es necesario el filtro por la propiedad Id_Registro?


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    miércoles, 22 de marzo de 2017 14:47

Todas las respuestas

  • Luis Gabriel Fabres,

    La consulta Linq que muestras retornará el último elemento de la secuencia sin ningún orden en especial, para definir el orden debes utilizar el método de extensión OrderBy()

    context.Set<Tabla1>().Where(x => x.Id_Registro == idRegistro).OrderByDescending(x => x.Fecha)
                                .FirstOrDefault();

    ¿Es necesario el filtro por la propiedad Id_Registro?


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    miércoles, 22 de marzo de 2017 14:47
  • Hola William, muchas gracias por tu ayuda.

    respecto de si el filtro es necesario, en este caso si, porque el IdRegistro identifica a un tipo de articulo, por lo cual creo entender que la consulta completa seria de la siguiente forma:

    context.Set<Tabla1>().OrderByDescending(x => x.Fecha).FirstOrDefault(z => z.Id_Registro == idRegistro);

    Estaria bien asi en este caso?

    Saludos y gracias

    miércoles, 22 de marzo de 2017 15:10
  • Luis Gabriel Fabres,

    Si, sea que escribas la expresión de filtro en el método where() (como yo lo propuse) o en el método FirstOrDefault() obtendrás la misma consulta sql:

    SELECT TOP (1) 
        *
    FROM
        Tabla1 t1
    WHERE
        (t1.Id_Registro = @Id_Registro)
    ORDER BY 
        t1.Fecha DESC



    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.

    miércoles, 22 de marzo de 2017 15:59
  • ok, me queda muy claro.

    te agradezco nuevamente la ayuda

    Saludos

    miércoles, 22 de marzo de 2017 16:44