Exemplo n.º 1
0
        /// <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));
        }
Exemplo n.º 2
0
 /// <summary>
 /// Compiles <see cref="ExistenceProvider"/>.
 /// </summary>
 /// <param name="provider">Existence provider.</param>
 protected abstract TResult VisitExistence(ExistenceProvider provider);