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 […]
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 […]
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 […]
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 […]
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 […]
À 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 = […]
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 […]
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 […]
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 à […]
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 […]