我有一个函数返回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并以有效的方式注入连接查询?
答案 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)} ...")