[ad_1]
Tengo dos tablas en una base de datos que quiero combinar y trabajar con esos datos.
Entonces usé ese fragmento de código:
var listOfFoundRespIds = (from a in context.Adresses join e in context.ExtraData on a.LFD equals e.lfd where a.PROJID == 2048 select new { RESPID = e.str03, LFD = e.lfd, PROJID = a.PROJID }) .ToList();
La propia tabla de la base de datos tiene 31.966.037 entradas.
Durante la depuración (directamente después de la ejecución del código), inicié iEnumeration Viewer, busqué contexto. Direcciones y realicé una exportación csv. Había 995.101 entradas en esa lista. Entonces, en el momento de la ejecución, no tengo todas las entradas de la tabla principal para trabajar con ella.
¿Quizás alguien tenga alguna idea de cómo solucionarlo?
Lo que he probado:
Visor de enumeración IEnumeration marcado y pago csv
Verifique dos veces la tabla de base de datos
Lea documentos sobre Entity Framework y otras cosas de SQL.
Solución 1
Estás realizando un INNER JOIN
– sólo obtendrás resultados del Addresses
tabla que tiene un registro correspondiente en el ExtraData
mesa.
Si desea que todos los registros del Addresses
tabla, incluso si no tienen ningún registro correspondiente en la ExtraTable
entonces necesitas realizar un LEFT JOIN
.
Realizar uniones externas izquierdas (LINQ en C#) – C# | Microsoft aprende[^]
from a in context.Adresses join ed in context.ExtraData on a.LFD equals e.lfd into edg from e in ed.DefaultIfEmpty() where a.PROJID == 2048 select new { RESPID = e.str03, LFD = e.lfd, PROJID = a.PROJID }
[ad_2]
コメント