Конвертировать 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)} ...")
Другие вопросы по тегам