Paramètre de l'arbre d'expression C # pour la propriété de navigation parente

c# entity-framework expression-trees lambda

Question

Comment créer une ParameterExpression pour le côté parent d'une propriété de navigation 1 à *?

Les travaux suivants pour l'entité enfant:

var parameter = Expression.Parameter(
    typeof(T), // where T is the entity type
    GetParameterName()); // helper method to get alias

Essayer quelque chose de similaire sur TParent génère une requête provenant du contexte et non d'une propriété sur l'enfant.

L'équivalent lambda serait comme ceci:

var parameter = Expression.Parameter(
    typeof(T), // where T is the entity type
    GetParameterName()); // helper method to get alias

Modifier pour plus de clarté:

J'utilise ce qui suit pour créer une expression de membre à partir d'une propriété:

var parameter = Expression.Parameter(
    typeof(T), // where T is the entity type
    GetParameterName()); // helper method to get alias

Il semble donc que je devrais utiliser MemberExpression au lieu de ParameterExpression pour ce cas.

Réponse d'expert

Je suis un peu confus ... ".Bar" n'est pas une ParameterExpression - c'est une MemberExpression . f est le paramètre. Qu'est-ce que vous voulez faire exactement?

Notez qu’une option consiste à charger l’exemple de code dans le réflecteur, à activer les conseils .NET 3.5 et à lire comment il le fait: il ressemble au code ici , mais il est généralement assez facile à suivre.




Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi