如何为 1 到 * 导航属性的父端创建 ParameterExpression?
以下适用于子实体:
var parameter = Expression.Parameter(
typeof(T), // where T is the entity type
GetParameterName()); // helper method to get alias
在 TParent 上尝试类似的操作会产生源自上下文的查询,而不是作为子属性的查询。
等效的 lambda 是这样的:
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 。