0

Est-il possible de créer une expression LINQ dans une bibliothèque de classes portable et de réutiliser l'expression dans d'autres parties de l'application? Un cas d'utilisation pratique pour moi serait d'utiliser ces expressions dans CompiledQuerys à travers les plates-formes au lieu de copier/coller le même code plusieurs fois.Réutilisation d'expressions LINQ créées dans une bibliothèque de classes portable

Toutes mes tentatives jusqu'à présent ont fini par lancer une exception d'exécution plus ou moins vide de sens (NullReferenceException, Colonne non trouvée ..). Je suppose que les expressions LINQ dans une PCL sont traitées différemment que par exemple dans une application WP?

public class SomeClassNotInPCL 
{ 
    private static readonly Func<Context, int, MyClass> CompiledQuery = 
     CompiledQuery.Compile(ClassFarAway.MethodInsidePCL()); 
} 

public class ClassFarAway 
{ 
    private static Expression<Func<IContext, int, MyClass>> MethodInsidePCL() 
    { 
     return (context, id) => context.MyClass.FirstOrDefault(m => m.Id == id); 
    } 
} 
+0

Expression comme dans les expressions Linq ou les expressions régulières? – user7116

+0

Bon point. Je m'intéresse à System.Linq.Expressions.Expression. – UnclePaul

+0

Exemple de code peut aider grandement. Est-ce L2SQL? L2EF? L2O? – user7116

Répondre

-1

Que diriez-vous de quelque chose comme ceci?

var commonExpressions = new Dictionary<CommonRegEx, Regex>(); 

public enum CommonRegEx{ 
    Phone, 
    Email, 
    SSN 
} 
+0

Merci pour vos commentaires. Je ne vois absolument rien de mal avec votre exemple et cela fonctionnera probablement comme un charme, cependant, je cherche à réutiliser des expressions Linq entre plusieurs plates-formes. – UnclePaul

Questions connexes