public TRegistro LeerUltimoRegistro(List <ClausulaDeFiltrado> filtros = null, List <ClausulaDeJoin> joins = null, ParametrosDeNegocio parametros = null)
        {
            if (parametros == null)
            {
                parametros = new ParametrosDeNegocio(enumTipoOperacion.LeerSinBloqueo);
            }

            var orden = new ClausulaDeOrdenacion()
            {
                OrdenarPor = nameof(IRegistro.Id), Modo = ModoDeOrdenancion.descendente
            };

            var registros = DefinirConsulta(0, -1, filtros, new List <ClausulaDeOrdenacion> {
                orden
            }, joins, parametros);

            var registro = parametros.LeerParaActualizar ? registros.FirstOrDefault() : registros.AsNoTracking().FirstOrDefault();

            return(registro);
        }
Beispiel #2
0
        private static IQueryable <TRegistro> AplicarOrderBy <TRegistro>(this IQueryable <TRegistro> registros, ClausulaDeOrdenacion orden, PropertyInfo propiedad)
        {
            switch (orden.Modo)
            {
            case ModoDeOrdenancion.ascendente:
                return(registros.OrderBy($"x => x.{propiedad.Name}"));

            case ModoDeOrdenancion.descendente:
                return(registros.OrderBy($"x => x.{propiedad.Name}", "descending"));
            }
            return(registros);
        }
 protected static IQueryable <TRegistro> OrdenPorId(IQueryable <TRegistro> registros, ClausulaDeOrdenacion orden)
 {
     return(orden.Modo == ModoDeOrdenancion.ascendente
         ? registros.OrderBy(x => x.Id)
         : registros.OrderByDescending(x => x.Id));
 }