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); }
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)); }