Lorsque vous utilisez l'entité Framework et la clé composite, réalisez que les mêmes fonctions que la requête simple contient () devient plus compliquée. Cet article traite de diverses méthodes pour résoudre ce problème:
Essayez d'utiliser la valeur de clé primaire composite pour la connexion directe ou contient des opérations dans Entity Framework. En effet, ce type d'opération ne peut pas être converti en SQL, car dans ce contexte, le groupe de méta n'est pas considéré comme la valeur d'origine.
Une autre méthode consiste à utiliser asenmemeable () pour extraire les données de la table de la base de données dans la mémoire et utiliser LINQ sur des objets pour effectuer le dépistage nécessaire. Cependant, pour les grandes tables, cette solution est extrêmement faible.
L'utilisation d'une instruction CONTISE () séparée pour chaque composant de clé primaire composite peut provoquer un dépistage incorrect. Cette méthode produira des résultats trompeurs, car une seule entité de correspondance est incluse dans l'erreur.
La requête contient () qui est modifiée contenant la valeur de calcul contenant le composant de clé primaire composite (par exemple entity.id1 * entity.id2). Cependant, cette solution n'est pas recherchable, ce qui entraîne de faibles performances.
La méthode la plus évolutive consiste à combiner des contenues et des connexions de mémoire. Cette méthode utilise des requêtes contenues préliminaires () pour réduire l'ensemble de résultats, puis un raffinement plus précis via la connexion mémoire.
Le prédicat du prédicat comme Linqkit permet la création d'une phrase ou zi contenant la combinaison de chaque valeur de clé principale composite. Bien que cette méthode puisse convenir aux petites listes, ses performances diminueront pour les grandes listes.
Une autre méthode consiste à combiner plusieurs requêtes de chaque combinaison de valeur de clé principale composite en utilisant Union. Cette solution peut être efficace pour les listes de petites à moyenne taille.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!