Parámetro del árbol de expresión de C # para la propiedad de navegación principal

c# entity-framework expression-trees lambda

Pregunta

¿Cómo puedo crear una ParameterExpression para el lado primario de una propiedad de navegación de 1 a *?

Los siguientes trabajos para la entidad hijo:

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

Probar algo similar en TParent produce una consulta que se origina en el contexto y no como una propiedad en el elemento secundario.

El equivalente lambda sería así:

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

Editar para mayor claridad:

Uso lo siguiente para crear una expresión de miembro a partir de una propiedad:

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

Así que parece que debería estar usando MemberExpression en lugar de ParameterExpression para este caso.

Respuesta experta

Estoy un poco confundido ... ".Bar" no es una ParameterExpression , es una MemberExpression . f es el parámetro. ¿Qué es exactamente lo que quieres hacer?

Tenga en cuenta que una opción es cargar el código de muestra en el reflector, activar las sugerencias de .NET 3.5 y leer cómo lo hace: se verá como el código aquí , pero generalmente es fácil de seguir.




Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué