Principales respuestas
bucle no termina

Pregunta
-
Que tal desarrolladores, tengo un problema en .net tengo unas consulta en linQ y el problema que se me presento ahora que busca datos en la BD es que si en la base de datos no hay algun dato busca al infinito y por ende no carga la vista, como puedo hacer un quiebre de este ciclo de manera que si no encuentra datos de este mes que busque en el mes anterior o en pocas palabras que busque el ultimo dato cargado? he aqui el codigo de mi controlador
var mintec = cm.tb_min. Where(filtro, fin, inicio). Select(v => new { // select en Linq con sintaxis lamda F_h1 = v.F_h1, F_h2 = v.F_h2, F_h3 = v.F_h3, F_h4 = v.F_h4, F_h5 = v.F_h5, F_h6 = v.F_h6, F_h7 = v.F_h7, F_h8 = v.F_h8, F_h9 = v.F_h9, F_h10 = v.F_h10, F_h11 = v.F_h11, F_h12 = v.F_h12, F_h13 = v.F_h13, F_h14 = v.F_h14, F_h15 = v.F_h15, F_h16 = v.F_h16, F_h17 = v.F_h17, F_h18 = v.F_h18, F_h19 = v.F_h19, F_h20 = v.F_h20, F_h21 = v.F_h21, F_h22 = v.F_h22, F_h23 = v.F_h23, F_h24 = v.F_h24, }).ToList(); while (!mintec.Any()) // bucle hasta que encuentre datos { inicio = inicio.AddMonths(-1);// resta los meses para que pueda continuar buscando datos //fin = fin.AddMonths(-1); inicio = inicio.AddMonths(-1); int cantdays_ciclo = DateTime.DaysInMonth(inicio.Year, inicio.Month);// obtiene la cantidad de dias del mes en el que se debe buscar datos fin = new DateTime(inicio.Year, inicio.Month, cantdays_ciclo); mintec = cm.tb_min. Where(filtro, fin, inicio). Select(v => new { F_h1 = v.F_h1, F_h2 = v.F_h2, F_h3 = v.F_h3, F_h4 = v.F_h4, F_h5 = v.F_h5, F_h6 = v.F_h6, F_h7 = v.F_h7, F_h8 = v.F_h8, F_h9 = v.F_h9, F_h10 = v.F_h10, F_h11 = v.F_h11, F_h12 = v.F_h12, F_h13 = v.F_h13, F_h14 = v.F_h14, F_h15 = v.F_h15, F_h16 = v.F_h16, F_h17 = v.F_h17, F_h18 = v.F_h18, F_h19 = v.F_h19, F_h20 = v.F_h20, F_h21 = v.F_h21, F_h22 = v.F_h22, F_h23 = v.F_h23, F_h24 = v.F_h24, }).ToList(); } if (mintec.Any()) { valormes = mintec.Sum(total => total.F_h1 + total.F_h2 + total.F_h3 + total.F_h4 + total.F_h5 + total.F_h6 + total.F_h7 + total.F_h8 + total.F_h9 + total.F_h10 + total.F_h11 + total.F_h12 + total.F_h13 + total.F_h14 + total.F_h15 + total.F_h16 + total.F_h17 + total.F_h18 + total.F_h19 + total.F_h20 + total.F_h21 + total.F_h22 + total.F_h23 + total.F_h24); today1 = inicio; // almaceno en today1 la fecha que contiede datos para que pueda ser usada por los demas metodos } else { valormes = 0; } return Convert.ToDouble(valormes).ToString("N", nfi); // "N" representa una cifra numerica, nfi el formato }
Joel Baez
Respuestas
-
hola
una duda, cual es el sentido del
Select(v => new ...
si vasicamente mapeas las mismas propiedades ? porque no solo usar
mintec = cm.tb_min .Where(filtro, fin, inicio) .ToList();
eso devolveria la entidad con las mismas propiedades
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina- Propuesto como respuesta Tonatiuh AbregoModerator jueves, 12 de abril de 2018 21:32
- Marcado como respuesta Tonatiuh AbregoModerator jueves, 3 de mayo de 2018 16:11