我正在使用LINQ on Entity Framework进行动态查询。
要通过用户输入过滤器查询某些表,我们使用PredicateBuilder
创建条件WHERE部分。这确实很好,但返回的列数是固定的。
现在,如果我们需要用户在他们的报告中选择他需要的列,除了他们的过滤器之外,我们也遇到了麻烦,因为我们不知道如何动态myQuery.Select( x => new { ... })
和Where子句一样
我们怎样才能实现这样的目标?
答案 0 :(得分:1)
一些搜索显示这很棘手。匿名类型是在编译时创建的,因此动态创建匿名类型并不容易。 This answer包含使用Reflection.emit
的解决方案。
如果可能,我建议您返回类似IDictionary<,>
的内容。