问题描述
|
我想构建一个GUI面板/向导,我的应用程序的用户可以使用强类型对象模型的属性来构建自定义条件/表达式。
基本上是这样的。
该结构可以嵌套(LHS / RHS可能由其他表达式组成),并使用或/和// foreach操作数与其他表达式组合。
我希望能够检查每个子表达式的正确类型和值。
理想情况下,最终查询应该是linq查询或表达式树。
我的目标是让用户设计自己的策略或简单的工作流程。
您建议使用哪种类型的表达式以及创建动态查询的解决方案?
我正在考虑将表达式表示为字符串,例如
person.DateOfBirth > 1970 && person.Country != Country.Germany
然后在动态LINQ库生成的扩展.Where
子句中使用串联作为参数创建linq查询,如此处所述。
是否可以创建动态高级表达式或此解决方案有局限性?
您建议什么替代解决方案?
解决方法
检查LINQKit项目,尤其是PredicateBuilder类。