将JoinSqlBuilder转换为SqlExpressionVisitor

时间:2018-04-17 17:33:03

标签: c# servicestack ormlite-servicestack

我有一个函数返回SqlExpressionVisitor,以便稍后用作Select语句的输入。

private SqlExpressionVisitor<Account> GetExpressionVisitor (int id, bool  detailed, SqlExpressionVisitor<Account> ev)
{
    if (!detailed)
    {
        ev = ev.Where (a => a.Id == id);
    }
    else
    { 
        // need to do join with another table via JoinSqlBuilder to query more information and then pack results in the ev object ... 
    }
    return ev;
}

知道如何将JoinSqlBuilder转换为SqlExpressionVisitor或如何编辑SqlExpressionVisitor并以有效的方式注入连接查询?

1 个答案:

答案 0 :(得分:1)

目前尚不清楚您要尝试实现的目标,但您可以使用Typed API for Joins类似于您键入的Where表达式。否则,如果不能使用Typed API,您可以使用CustomJoin API在查询中添加字符串JOIN表达式,例如:

var q = Db.From<Job>();
q.CustomJoin($"LEFT JOIN (SELECT {nameof(Job.Id)} ...")