如何更新IQueryable中的表达式

时间:2017-05-31 21:10:18

标签: entity-framework odata iqueryable

我有OData Web API + EF应用程序,我需要在嵌套的位置修改一些查询。如果查询如下:

SomeEntity?$filter=Name eq 'Y'&$Expand=Children($filter=Name eq 'x')

它以我不能做的方式嵌套LINQ表达式 IQueryable.Where(y =>附加过滤器)仅适用于SomeEntity而不适用于Children实体。

我有ExpressionVisitor为个别Where LINQ func返回修改过的Expression但IQueryable.Expression是只读的,我无法覆盖旧的Expression。

1 个答案:

答案 0 :(得分:0)

我发现我能做到 IQueryable.Provider.CreateQuery(我的新表达式)