1

我想构建一个 gui 面板/向导,我的应用程序的用户可以在其中使用强类型对象模型的属性构建自定义条件/表达式。 基本上是这样的。

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

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

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

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

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

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

然后使用.Where由动态 LINQ 库生成的扩展子句中的串联作为参数创建 linq 查询,如此处所述。

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

您建议什么替代解决方案?

4

1 回答 1

2

检查 LINQKit 项目,尤其是 PredicateBuilder 类。

于 2011-10-20T10:17:06.403 回答