让用户从gui向导构建动态表达式

时间:2011-05-24 00:21:19

标签: c# linq expression-trees dynamic-linq

我想构建一个gui面板/向导,我的应用程序的用户可以使用强类型对象模型的属性构建自定义条件/表达式。 Basically something like this.

结构可以嵌套(LHS / RHS可能包含其他表达式),并使用or /和/ foreach操作数与其他表达式结合使用。

我希望能够检查每个子表达式的正确类型和值。 理想情况下,最终查询应该是linq查询或表达式树。

我的目标是让用户设计自己的策略或简单的工作流程。

您建议使用哪种类型来处理表达式以及创建动态查询的解决方案?

我在考虑将表达式表示为字符串,例如

person.DateOfBirth > 1970 && person.Country != Country.Germany

然后使用动态LINQ库生成的扩展.Where子句中的连接作为参数创建linq查询as described here.

是否可以创建动态高级表达式,或者此解决方案有限制?

您建议使用哪种替代解决方案?

1 个答案:

答案 0 :(得分:2)

检查LINQKit项目,特别是PredicateBuilder类。