Конвертировать JoinSqlBuilder в SqlExpressionVisitor
У меня есть функция, которая возвращает 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 ответ
Решение
Непонятно, чего именно вы пытаетесь достичь, но вы можете добавить использовать Typed API для объединений, аналогичный вашему типизированному. Where
выражение. В противном случае, если использование Typed API невозможно, вы можете использовать CustomJoin API, чтобы добавить строковое выражение JOIN в ваш запрос, например:
var q = Db.From<Job>();
q.CustomJoin($"LEFT JOIN (SELECT {nameof(Job.Id)} ...")