Articles of expression arbres

Expression.Convert ne génère pas InvalidOperationException pour les parameters de type valeur invariable?

Expression.Convert génère généralement une InvalidOperationException lorsque “Aucun opérateur de conversion n’est défini entre expression.Type et type.” Le paramètre de type de retour de Func est une covariante pour les types de référence. // This works. Func a = () => new SomeType(); Func b = a; Ce n’est pas une covariante pour les types de […]

Comment paramétrer un sélecteur avec une fonction dans une requête EF?

J’ai une fonction de projection que je passe à la méthode IQueryable.Select() : private static Expression<Func> GetPriceSelector(){ return e => new PriceItem { Id = e.Id, Price = Math.Round(e.Price, 4) }; } Tout fonctionne très bien mais je veux le paramétrer comme ça: private static Expression<Func> GetPriceSelector(Func formula){ return e => new PriceItem { Id […]

Le meilleur moyen de concaténer des chaînes et des nombres dans SQL Server avec Entity Framework 5?

Pour une raison quelconque, Microsoft a décidé de ne pas prendre en charge le concat simple dans EF5. par exemple Select(foo => new { someProp = “hello” + foo.id + “/” + foo.bar } Cela lancera si foo.id ou foo.bar sont des nombres. La solution de contournement que j’ai trouvée est apparemment cette jolie pièce […]

Générer une arborescence d’expression pour LINQ à l’aide de la méthode List .Contains

Problème Je travaille sur la refactorisation de requêtes LINQ pour plusieurs rapports dans notre application Web et j’essaie de déplacer certains prédicats de requête en double dans leurs propres méthodes exension IQueryable afin que nous puissions les réutiliser ultérieurement. Comme vous pouvez probablement en déduire, j’ai déjà modifié le prédicat pour les groupes, mais le […]

Création d’une fonction qui convertit les fonctions d’un type en un autre

Pour quelques reflections de fantaisie, j’ai une fonction de type Func et je dois la transmettre à une fonction qui accepte le type Func, où T n’est pas connu avant l’exécution. Par exemple: public bool MyOperation(Func op) { return _myValues.Any(op); } public static bool InvokeOperationMethod(MethodInfo info, object obj,Func opAsObject) { info.Invoke(obj, opAsObject); } Le problème […]

Pourquoi une conversion est-elle nécessaire dans les arbres d’expression?

À partir de cette question que j’ai posée il ya 5 minutes, il est clair que le code suivant lève une exception, indiquant que Exception non gérée: System.InvalidOperationException: l’opérateur binary Equal n’est pas défini pour les types ‘System.Nullable`1 [System.Int32]’ et ‘System.Int32’. Code public static void GetResultCollection() { AccrualTrackingEntities db = new AccrualTrackingEntities(); var result = […]

Comment réfléchir sur T pour construire un arbre d’expression pour une requête?

J’essaie de construire une classe générique pour travailler avec des entités de EF. Cette classe parle aux référentiels, mais c’est cette classe qui crée les expressions envoyées aux référentiels. Quoi qu’il en soit, j’essaie simplement d’implémenter une méthode virtuelle qui servira de base pour les requêtes courantes. Spécifiquement, il acceptera un int et il lui […]

Convertir func en prédicat en utilisant la reflection en C #

En gros, j’essaie de faire cela , mais je ne sais pas ce que sera T, alors je construis des choses en utilisant des arbres de reflection et d’expression. // Input (I don’t know about “Book”) Type itemType = typeof(Book); // Actual Code // Build up func p => p.AuthorName == “Jon Skeet” ParameterExpression predParam […]

Étant donné le type ExpressionType.MemberAccess, comment puis-je obtenir la valeur du champ?

Je suis en train d’parsingr un arbre d’expression. Étant donné le type de noeud ExpressionType.MemberAccess, comment puis-je obtenir la valeur de ce champ? Depuis C # MSDN docs: MemberAccess est un nœud qui représente la lecture d’un champ ou d’une propriété. Un extrait de code serait incroyablement, incroyablement utile. Merci d’avance!!! Mon code ressemble à […]

Création d’une expression dynamic pour le entity framework

J’ai créé un générateur d’expression générique qui construit un prédicat basé sur un ensemble de conditions. Je passe le prédicat à une méthode générique dans le référentiel. Je pense que le générateur d’expression fonctionne correctement et crée le prédicat souhaité bien que le script SQL généré par Entity Framework ne soit pas conforme à mes […]