J'ai table_A
avec les colonnes guid_A
et guid_B
et la table a la clé primaire (guid_A, guid_B)
. Je veux sélectionner toutes les paires de guid qui existent dans un IEnumerable<Tuple<Guid, Guid>>
que j'ai dans mon application, mais je ne suis pas sûr de savoir comment le faire le plus efficacement. le plus naïvement je pouvais faire des appels répétés à:Sql, comment sélectionner plusieurs résultats basés sur deux colonnes dépendantes dans un seul select?
SELECT guid_A, guid_B
FROM table_A
WHERE guid_A = @guidA AND guid_B = @guidB
que j'itérer de mon IEnumerable<Tuple<Guid, Guid>>
régler les paramètres que leurs valeurs respectives de la Tuple
mais cela pourrait signifier de nombreux appels à la DB.
Je pensais que je pourrais changer mon IEnumerable
en un Dictionary<Guid, IEnumerable<Guid>> where the key Guid is guid_A and the value is an
IEnumerable` de tous les guid_B qui apparaissent avec ce guid_A et utiliser à la place un select like.
SELECT guid_A, guid_B
FROM table_A
WHERE guid_A = @guidA AND guid_B in (...a list of guids...)
que j'itérer sur la construction Dictionary
la liste des GUIDs que je vais. De cette façon, j'ai seulement besoin de faire un appel par guid_A que j'ai dans mes clés Dictionary
. Mais j'espérais qu'il y aurait une meilleure façon d'aborder cela qui m'aiderait à sélectionner toutes les paires de guid_A, guid_B d'une liste dans une seule requête SELECT? Quelles sont les tailles relatives de la liste en mémoire et de la table de base de données?
Dump votre lo okup paires dans une table temporaire et utiliser un 'JOIN'. –