Usuario
Listar Faltantes correlativos con LINQ

Pregunta
-
Hola eso tengo 2 textbox donde voy a ingresar datos numericos ejemplo 01 y 36 ahora tengo en la tabla ese campo con datos quisiera mostrar la cantidad de faltantes y los numeros por ejemplo que falte el 05,06,07,15,17 todo esto con EF y Linq desde ya gracias
Todas las respuestas
-
hola
podria intentar algo como ser
var result = dbContext.NombreTabla.Where(x=> !x.Contains(TextBox1.Text) || !x.Contains(TextBox2.Text));
saludosLeandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina -
Hola, creo que lo que buscas lo tenés que hacer en memoria, trayéndote los que si están y luego iterar.
int inicio = int.Parse(tb1.Text), fin = int.Parse(tb2.Text); var losQueSiEstan = (from n in dbContext.Numeros where inicio <= n.N && n.N <= fin select n.N).ToList(); var faltan = List<int>(); for(int i = inicio; i<=fin; i++) if(!losQueSiEstan.Any(n => n == i)) faltan.Add(i); return faltan;
Salu2
-
hola
podria intentar algo como ser
var result = dbContext.NombreTabla.Where(x=> !x.Contains(TextBox1.Text) || !x.Contains(TextBox2.Text));
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina -
Puesto que es en base de datos, yo no haría eso en LINQ. Lo que usted propone es un caso muy conocido: Find gaps. El inverso es bien conocido también: Find islands.
Si lee este artículo encontrará cómo se resuelven ambos. Yo encapsularía la lógica en un PA y luego mapearía el PA a EF.
Jose R. MCP
Code Samples -
-
-
Entiendo que sea elevado, pero no hay de otra. Calcular los gaps o islands fuera de SQL Server implica que SQL Server debe enviar el 100% de los datos que estén entre los números que el usuario digite. Hacer esto por LINQ es una tontería. Si no entiende ese artículo, busque otros al respecto.
Jose R. MCP
Code Samples -