[ad_1]
J’ai deux tables dans une base de données que je veux combiner et travailler avec ces données.
J’ai donc utilisé cet extrait de code :
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 table de base de données elle-même contient 31 966 037 entrées.
Pendant le débogage (directement après l’exécution du code), j’ai démarré iEnumeration Viewer, j’ai examiné les context.Adresses et j’ai effectué une exportation CSV. Il y avait 995 101 entrées dans cette liste. Donc, au moment de l’exécution, je n’ai pas toutes les entrées de la table principale pour travailler avec.
Peut-être que quelqu’un a une idée sur comment réparer ?
Ce que j’ai essayé :
Vérification de la visionneuse IEnumeration et de l’extraction CSV
Vérifiez la table de base de données
Lisez la documentation sur Entity Framework et d’autres éléments SQL.
Solution 1
Vous effectuez un INNER JOIN
– vous ne recevrez que les résultats du Addresses
table qui ont un enregistrement correspondant dans le ExtraData
tableau.
Si vous voulez tous les enregistrements du Addresses
table, même s’ils n’ont pas d’enregistrement correspondant dans la ExtraTable
alors vous devez effectuer un LEFT JOIN
.
Effectuer des jointures externes gauches (LINQ en C#) – C# | Microsoft Apprendre[^]
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]
コメント