"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment interroger efficacement les entités clés composites dans Entity Framework?

Comment interroger efficacement les entités clés composites dans Entity Framework?

Publié le 2025-04-12
Parcourir:160

Entité de requête efficace avec des touches primaires composites dans l'entité framework

Implémentation de la même fonctionnalité qu'une requête simple contient () devient plus complexe lors de l'utilisation du cadre d'entité et des clés primaires composites. Cet article traite de diverses façons de résoudre ce problème:

essayez d'utiliser contient

pour les paires de valeurs clés

Tenter d'utiliser un tuple représentant une valeur de clé primaire composite pour une jointure directe ou une opération contient échoue dans le cadre d'entité. En effet, de telles opérations ne peuvent pas être converties en SQL, car les tuples ne sont pas considérés comme des valeurs d'origine dans ce contexte.

en utilisant le traitement de la mémoire

Une autre façon est d'utiliser AsenuMableable () pour extraire les données de la table de la base de données dans la mémoire et effectuer le filtrage nécessaire à l'aide de LINQ sur des objets. Cependant, pour les grandes tables, cette solution est extrêmement inefficace.

Utiliser deux instructions contient (incorrect)

Utilisation d'une instruction CONTAINS () pour chaque composant de clé primaire composite entraînera un filtrage incorrect. Cette approche peut produire des résultats trompeurs car les entités ne contenant qu'une seule composante correspondante seront incluses à tort.

Utiliser des valeurs calculées pour un seul contient la requête

Vous pouvez utiliser une requête contenue modifiée () contenant les valeurs calculées dérivées du composant de clé primaire composite (par exemple, entity.id1 * entity.id2). Cependant, cette solution n'est pas déterminable et conduit à de mauvaises performances.

combinant contenu et connexion mémoire (solution 5)

La méthode la plus évolutive consiste à combiner des contenues et des connexions de mémoire. Cette méthode utilise une requête préliminaire contient () pour réduire l'ensemble de résultats, puis l'affiner plus précisément via des connexions mémoire.

construire des requêtes à l'aide ou des clauses (solution 6)

Les constructeurs préliminaires comme Linqkit permettent la création de requêtes contenant ou de clauses pour chaque combinaison composite de valeur de clé primaire. Bien que cette méthode puisse fonctionner pour les petites listes, pour les grandes listes, ses performances seront dégradées.

Utilisez joint (Solution 7)

Une autre façon est d'utiliser Union pour combiner plusieurs requêtes qui combinent chaque valeur de clé primaire composite. Cette solution peut fonctionner pour des listes de petites et moyennes.

How Can I Efficiently Query Entities with Composite Keys in Entity Framework?

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3