将 JoinSqlBuilder 转换为 SqlExpressionVisitor

Convert JoinSqlBuilder to SqlExpressionVisitor

我有一个函数 returns 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 并以有效的方式注入连接查询吗?

不清楚您要实现的目标,但您可以添加使用 Typed API for Joins similar to your typed Where expression. Otherwise if using a Typed API isn't possible you can use the 将字符串 JOIN 表达式添加到您的查询中,例如:

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