Je comprends les lambdas et le FuncetAction les délégués. Mais les expressions me frappent. Dans quelles circonstances utiliseriez-vous Expression<Func<T>>un ancien plutôt qu'un simple ancien
Je comprends les lambdas et le FuncetAction les délégués. Mais les expressions me frappent. Dans quelles circonstances utiliseriez-vous Expression<Func<T>>un ancien plutôt qu'un simple ancien
Existe-t-il un meilleur moyen d'obtenir le nom de la propriété lorsqu'il est transmis via une expression lambda? Voici ce que j'ai actuellement. par exemple. GetSortingInfo<User>(u => u.UserId); Il a fonctionné en le convertissant en expression de membre uniquement lorsque la propriété...
J'ai jeté un coup d'œil à Roslyn CTP et, bien qu'il résout un problème similaire à l' API de l'arbre d'expression , les deux sont immuables, mais Roslyn le fait d'une manière assez différente: Expressionles nœuds n'ont aucune référence au nœud parent, sont modifiés à l'aide de a ExpressionVisitoret...
Remarque: j'ai connaissance de la question précédente « Quel est le but de la méthode Expression.Quote de LINQ? » , Mais si vous continuez à lire, vous verrez que cela ne répond pas à ma question. Je comprends quel est l'objectif déclaré Expression.Quote(). Cependant, Expression.Constant()peut être...
J'ai la méthode d'extension générique suivante: public static T GetById<T>(this IQueryable<T> collection, Guid id) where T : IEntity { Expression<Func<T, bool>> predicate = e => e.Id == id; T entity; // Allow reporting more descriptive error messages. try { entity =...
Existe-t-il un moyen de désérialiser les expressions en C #, je voudrais stocker des expressions dans une base de données et les charger au moment de l'exécution.
Considérez la manipulation simple suivante sur une collection: static List<int> x = new List<int>() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; var result = x.Where(i => i % 2 == 0).Where(i => i > 5); Utilisons maintenant des expressions. Le code suivant est à peu près équivalent:...
public static IQueryable<TResult> ApplySortFilter<T, TResult>(this IQueryable<T> query, string columnName) where T : EntityObject { var param = Expression.Parameter(typeof(T), "o"); var body = Expression.PropertyOrField(param,columnName); var sortExpression =