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
Linda Hamiltonoriginal
2024-12-31 15:48:18784parcourir

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'

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);

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!

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