Comment construire () => x.prop expression lambda dynamiquement?
J'ai un code comme
DepartmentPaperConsumption dto = null;
puis plus tard j'ai NHibernate QueryOver résultat, et je veux le commander
result.OrderByAlias(() => dto.TotalColorCopys);
mais je veux être en mesure de spécifier une propriété de dto
dynamicly avec de la ficelle.
J'ai essayé à l'aide de Dynamique LINQ mais il semble que je ne peux pas le faire.
J'ai aussi essayé avec la construction de LambdaExpression de sol - également sans succès.
Je vous serais reconnaissant de toute aide.
Souhaitez-vous l'esprit annonce de la signature de la
si elle contribue à QueryOverOrderBuilder<TRoot, TSubType> OrderByAlias(Expression<Func<object>> chemin d'accès)
OrderbyAlias
méthode?si elle contribue à QueryOverOrderBuilder<TRoot, TSubType> OrderByAlias(Expression<Func<object>> chemin d'accès)
OriginalL'auteur Andrej Slivko | 2011-01-27
Vous devez vous connecter pour publier un commentaire.
Vous pouvez voir comment construire le lambda ici, mais il est vraiment assez simple dans votre cas:
La chose la plus délicate est en invoquant la
OrderByAlias
- à l'aide deMakeGenericMethod
peut-être la solution, comme indiqué dans le lien ci-dessus.Ça ne peut pas être l'Expression<délégué-type> l'OP veut.
OK, je vais corriger ça. N'ayant pas la signature n'aide pas ;p
mieux pour vous maintenant?
+1. Ah, maintenant que nous sommes plus proches, mais il est difficile de procéder sans en savoir plus sur OrderByAlias (signature, surcharge, etc). Je voulais poster quelque chose de similaire, mais j'hésite parce que je pense qu'il y des trucs funky passe. nhforge.org/blogs/nhibernate/archive/2009/12/17/...
OriginalL'auteur Marc Gravell
bien de l'utilisation de dynamic linq comme vous l'avez écrit, ou de l'utilisation de l'expression de l'arbre
http://msdn.microsoft.com/en-us/library/bb397951.aspx
je ne pense pas qu'il existe d'autres solutions
OriginalL'auteur Kikaimaru
J'ai réussi à trouver une façon moi-même, mais il semble plus de solution de contournement, de Marc version est beaucoup plus simple. Je vais accepter la réponse de Marc dès que je vais le tester. Voici ma solution :
et puis dans le code
MemberModifier n'est raw prototype, il devrait être plus générique et ne pas dépendre de DepartmentConsumption et sans codé en dur "TotalPages"
OriginalL'auteur Andrej Slivko