linq dynamique: sélection dynamique d'une colonne spécifique
Lorsque vous traitez avec une classe comme la classe
data
fournie dans le problème, il est nécessaire de choisir une colonne spécifique pendant l'opération LINQ. Cette tâche peut être effectuée par des expressions Lambda créées dynamiquement transmises à SELECT Méthode.
Pour cette raison, la méthode
createnewstatement
. Il reçoit une chaîne contenant le nom de champ requis en entrée et construit dynamiquement les expressions Lambda qui exécutent la colonne nécessaire. Dans cette méthode:
Créez un paramètre d'expression, indiquant l'objet d'entrée transmis à Lambda.
Utiliser Expression.New - Méthode pour créer un nouvel exemple de classe
data - .
Utiliser Expression.split Méthode pour diviser la chaîne d'entrée en une liste de noms de champs uniques.
Pour chaque nom de champ, utilisez - type.getProperty Obtenez les attributs correspondants dans la classe data
. -
Utiliser expression.property la valeur d'origine de l'attribut de récupération.
Utiliser expression.bind
Créez une expression de liaison pour définir la valeur d'attribut dans la nouvelle instance. -
Utiliser Expression.MemberInit a bindid Expression dans une seule expression d'initialisation.
- Enfin, utilisez expression.lambda Créez l'expression de Lambda et compilez-les en types de commission appropriés.
- Avec la méthode createnewstatement , vous pouvez l'appeler en utilisant le nom de champ requis comme paramètre pour sélectionner dynamiquement une colonne spécifique. Par exemple, SELECT Field1
et - Field2 Colonne: Colonne:
Cette méthode fournit une méthode commune qui sélectionne dynamiquement des colonnes dans l'opération LINQ.
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!
Déclaration:Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn