从字符串生成查询表达式

问题描述

我正在尝试将前端查询构建器映射到后端 ORM (Ormlite)。

例如,前端可能会发送 3 个字符串值:SomeField= foo

如果我想在 ORM 中生成这个查询,我会这样做:

var q = db.From<MyEntity>()
          .Where(x => x.someField == "foo")
          

所以我需要做的是想出一种方法来从字符串构建 where 谓词。

我可以看到 Where 期望的类型是:Expression<Func<MyEntity,bool>>

所以我想我需要这样的东西:


var q = db.From<MyEntity>()
          .Where(GetQueryPart("SomeField","=","foo");
          
//....

public Expression<Func<T,bool>> GetQueryPart<T>(string field,string queryOperator,string value)
{
    //...
    
}

但我不确定这是否是正确的方法或从哪里开始。我查看了此处的文档 https://docs.microsoft.com/en-us/dotnet/api/system.linq.expressions.expression?view=net-5.0,但我不清楚如何构建表达式。

有人可以帮我解决这个问题吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)