Maison > développement back-end > C++ > Les requêtes LINQ peuvent-elles être générées dynamiquement à partir de données XML sans recompilation ?

Les requêtes LINQ peuvent-elles être générées dynamiquement à partir de données XML sans recompilation ?

Linda Hamilton
Libérer: 2024-12-31 15:48:18
original
779 Les gens l'ont consulté

Can LINQ Queries Be Dynamically Generated from XML Data Without Recompilation?

Génération dynamique de requêtes LINQ sans recompilation

Dans les scénarios où les paramètres de requête proviennent de données externes mises à jour dynamiquement, il est nécessaire de générer des requêtes LINQ sans recompiler le code source. Considérons un objet comme SomeObject avec de nombreuses propriétés.

Est-il possible de créer de nouvelles requêtes LINQ de manière dynamique en extrayant des critères d'une structure XML stockée dans une base de données ?

Par exemple :

var result = from i in someObj
             where 
             //XML requests Name = 'Bob'...so append this where clause
             name = 'Bob'
Copier après la connexion

Solution utilisant Arbres d'expression

L'emploi d'arbres d'expression offre une solution viable solution :

var param = Expression.Parameter(typeof(SomeObject), "p");
var exp = Expression.Lambda<Func<SomeObject, bool>>(
    Expression.Equal(
        Expression.Property(param, "Name"),
        Expression.Constant("Bob")
    ),
    param
);
var query = someObj.Where(exp);
Copier après la connexion

Bien que cette approche soit considérablement plus complexe, elle offre une solution dans des scénarios spécifiques où la génération de requêtes dynamiques est nécessaire.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal