如何构造并保存到数据库以供以后使用半任意 lambda 表达式
本文关键字:任意 表达式 lambda 何构造 保存 数据库 | 更新日期: 2023-09-27 18:32:44
>我正在创建一个报告引擎。在尝试使其更通用时,我面临的挑战之一是试图弄清楚如何在查询中为用户提供更大的灵活性,这意味着生成自己的查询以供以后使用,而不是使用我提供的固定集。
例如,假设我有一个文档对象,该对象具有 N 个部分对象,该对象具有 N 行对象。
在具有更多静态目标的代码中,我可以轻松获取文档列表,其中有一个部分具有一行,该行的值包含一些文本,使用文档列表上的 where 子句和一个 lambda 表达式。
但是,有很多(几乎无限(可能的表达式,因此将人们限制在一个子集或必须将每个可能的路径编码为参数化方法并不真正可行。
所以问题是,我如何 1(从字符串数据构造一个 lambda 表达式(这意味着我如何有效地将一些数据发布到服务器,我可以灵活地转换为表达式(和 2( 如何保存该表达式以供以后在数据库中使用?
可能只有 #1 真正相关,因为如果我可以在 POST 数据时构造表达式,我可以将该字符串信息存储到数据库并执行相同的过程,但我目前不知道如何完成 #1
有什么建议吗?我觉得这在理论上是可行的,但我显然缺少基本方法。
不确定这是否会对您有所帮助,但这里有一些建议:
-
请考虑使用谓词生成器。下面是有关该方法的详细信息。
-
您可能能够使用动态 linq,并且可以将查询保存在数据库中供以后使用,就像常规字符串一样。我对这种方法没有经验,但如果您有兴趣,可以在此处阅读。
祝引擎好运,听起来很有趣!