2

我正在使用实体框架上的 LINQ 处理动态查询。为了通过用户输入过滤器查询一些表,我们使用PredicateBuilder创建条件 WHERE 部分。这真的很棒,但返回的列数是固定的。

现在,如果我们需要用户在他们的报告中选择他需要的列,除了他们的过滤器,我们就有麻烦了,因为我们不知道如何myQuery.Select( x => new { ... })像在 Where 子句中那样做动态。

我们怎样才能实现这样的目标?

4

1 回答 1

1

稍微搜索一下就会发现这很棘手。匿名类型是在编译时创建的,因此动态创建一个并不容易。这个答案包含一个使用Reflection.emit.

如果可能的话,我建议只返回类似 a 的东西IDictionary<,>

于 2013-10-30T19:02:56.480 回答