Comment faire pour convertir un LambdaExpression tapé Expression<Func<T, T>>

Je suis élaboration dynamique de requêtes linq pour nHibernate.

À cause des dépendances, j'ai voulu jeter/récupération de l'tapé expression à un moment plus tard, mais j'ai été unsuccessfull jusqu'à présent.

Ce n'est pas de travail (le casting est censé arriver d'ailleurs):

var funcType = typeof (Func<,>).MakeGenericType(entityType, typeof (bool));
var typedExpression =  (Func<T, bool>)Expression.Lambda(funcType, itemPredicate, parameter); //Fails

Cela fonctionne:

var typedExpression = Expression.Lambda<Func<T, bool>>(itemPredicate, parameter);

Est-il possible d'obtenir le "encapsulés" tapé expression à partir d'un LambdaExpression?

  • peut-être que vous êtes à la recherche pour typedExpression.Compiler()
  • J'ai besoin d'utiliser l'expression comme un IQueryable avec mon ORM mappeur de sorte qu'il ne peut pas être compilé.
InformationsquelleAutor Larantz | 2013-04-25