MJM*_*MJM 7 c# linq lambda expression derived-class
我需要一点魔法.我相信我想要做的事情是有道理的,但如果我没有看到计划的问题,那么为什么会受到欢迎.
我有一个表达
Expression<Func<Entity, bool>>
我想要转换/转换甚至创建一个全新的表达式:
Expression<Func<Derived, bool>>
这被用作EF过滤器查询,作为参数传递给存储库方法.存储库返回一个可枚举的实体,所以我可以很容易地使用协方差,但是我想在返回它之前对它的派生状态中的查询进行一些后处理.
在我看来,EF必须在内部执行此操作,但我希望能够运行我的查询,以便结果的类型是派生类型而不是实体.
谢谢你的帮助.
在该Expression级别上,您可以构建一个以类型作为参数的新表达式Derived:
var entityExpr = (Expression<Func<Entity, bool>>)(e => e.Str == "");
var derivedExpr = Expression.Lambda<Func<Derived, bool>>(entityExpr.Body, entityExpr.Parameters);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1335 次 |
| 最近记录: |