¿Cómo recibo los datos completos a través de la consulta del marco de la entidad?

programación


Tengo dos tablas en una base de datos que quiero combinar y trabajar con esos datos.

Entonces usé ese fragmento de código:

C#
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 ExtraTableentonces necesitas realizar un LEFT JOIN.

Realizar uniones externas izquierdas (LINQ en C#) – C# | Microsoft aprende[^]

C#
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
}

コメント

タイトルとURLをコピーしました