Как я могу создать выражение ParameterExpression для родительской стороны свойства 1 to * Navigation?
Следующие действия для дочернего объекта:
var parameter = Expression.Parameter(
typeof(T), // where T is the entity type
GetParameterName()); // helper method to get alias
При попытке чего-то подобного на TParent выдает запрос, исходящий из контекста, а не как свойство для дочернего элемента.
Лямбда-эквивалент будет таким:
var q = from f in context.Foo
where f.Bar.BarId == 1...
// where bar is the Navigation Property to the parent
Изменить для ясности:
Для создания выражения элемента из свойства я использую следующее:
Expression exp = Expression.Equal(
Expression.Property(parameter, "SomeColumn"),
Expression.Constant("SomeValue"));
Таким образом, похоже, что я должен использовать MemberExpression вместо ParameterExpression для этого случая.
Я немного смущен ... «.Bar» не является ParameterExpression
- это MemberExpression
. f
- параметр. Что именно вы хотите сделать?
Обратите внимание , что один вариант , чтобы загрузить образец код в отражатель, поворот на .NET 3.5 намеков, и читать , как он это делает - это будет выглядеть как код здесь , но, как правило , достаточно легко следовать.