0

我正在尝试将前端查询构建器映射到后端 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我不清楚如何构建表达。

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

4

0 回答 0