/// <inheritdoc/> protected override SqlProvider VisitExistence(ExistenceProvider provider) { var source = Compile(provider.Source); var query = source.Request.Statement.ShallowClone(); query.Columns.Clear(); query.Columns.Add(query.Asterisk); query.OrderBy.Clear(); query.GroupBy.Clear(); SqlExpression existsExpression = SqlDml.Exists(query); existsExpression = GetBooleanColumnExpression(existsExpression); var select = SqlDml.Select(); select.Columns.Add(existsExpression, provider.ExistenceColumnName); return(CreateProvider(select, provider, source)); }
/// <summary> /// Compiles <see cref="ExistenceProvider"/>. /// </summary> /// <param name="provider">Existence provider.</param> protected abstract TResult VisitExistence(ExistenceProvider provider);