将 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)} ...")
我有一个函数 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
var q = Db.From<Job>();
q.CustomJoin($"LEFT JOIN (SELECT {nameof(Job.Id)} ...")