Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 表达式树作为用户定义查询引擎的基础(使用EAV)?_C#_Linq_Expression Trees - Fatal编程技术网

C# 表达式树作为用户定义查询引擎的基础(使用EAV)?

C# 表达式树作为用户定义查询引擎的基础(使用EAV)?,c#,linq,expression-trees,C#,Linq,Expression Trees,我支持多租户系统,允许用户定义自定义表单。数据模型是基于EAV的,因为在一个数据库中支持多个租户时,发出动态DDL来更改表模式是不起作用的。接下来的一个需求是构建一个灵活的查询设计器,允许用户根据自己定义的自定义表单设置简单的谓词: 自定义日期字段1000和

我支持多租户系统,允许用户定义自定义表单。数据模型是基于EAV的,因为在一个数据库中支持多个租户时,发出动态DDL来更改表模式是不起作用的。接下来的一个需求是构建一个灵活的查询设计器,允许用户根据自己定义的自定义表单设置简单的谓词:

  • 自定义日期字段

  • 自定义数字字段1>1000和<1500

  • 自定义编号字段2为空

  • 我本来打算通过动态假脱机SQL字符串来构建这个查询引擎,但我想知道表达式树是否提供了一种更易于测试和类型安全的方法。这是ETs的一个好应用程序吗

    是的,使用表达式树将是处理动态用户定义查询的更好/更简单的方法。这个简单的类可以极大地帮助构建动态查询:

    请确保将签出作为另一个选项。它很受欢迎,也很强大