Show / Hide Table of Contents

    ISqlWhereAndOr<TBuilder>.OrWhereNotExists(ISqlBuilder sqlBuilder) Method

    .NET Standard 2.x

    Adds the OR logical operator and a search condition to the WHERE clause; and uses the NOT EXISTS operator to test if the record returned from a subquery does not exist.

    Namespace: SnapObjects.Data

    Assembly: SnapObjects.Data.dll

    Syntax

      TBuilder OrWhereNotExists(ISqlBuilder sqlBuilder);
    

    Parameters

    sqlBuilder SnapObjects.Data.ISqlBuilder

    An ISqlBuilder object which represents a SQL subquery on the right of the NOT EXISTS operator.

    Returns

    TBuilder

    Returns the TBuilder object which can be used to add more search conditions to the current WHERE clause.

    Examples

    The following code example demonstrates how to use the OrWhereNotExists method to add an OR NOT EXISTS condition to the WHERE clause. In this example, the NOT EXISTS condition specifies that the data must not exist in the result set of a subquery.

    using SnapObjects.Data;
    using System;
    
    namespace Appeon.ApiDoc.ISqlWhereAndOrExamples
    {
        public class OrWhereNotExistsExample
        {
            private readonly SchoolContext _context;
    
            public OrWhereNotExistsExample(SchoolContext dataContext)
            {
                // Sets data context.
                _context = dataContext;
            }
    
            public void Example()
            {
    
                // Declares SqlQueryBuilder.            
                var sqlbuilder = new SqlQueryBuilder();
    
                // Defines a subquery.
                var deptsql = new SqlQueryBuilder();
                deptsql.Select("DepartmentID")
                    .From("Department", "d")
                    .Where("d.DepartmentID", "c.DepartmentID")
                    .AndWhere("d.Name", SqlBuilder.Parameter<string>("id"));
    
                // Defines a SQL statement and adds an OR NOT EXISTS condition: 
                // the data must not exist in the result set of the subquery.
                sqlbuilder.Select("Title")
                    .From("Course", "c")
                    .Where("CourseID", SqlBinaryOperator.GreaterThan,
                            SqlBuilder.Parameter<int>("courid"))
                    .OrWhereNotExists(deptsql);
    
                string sql = sqlbuilder.ToSqlString(_context);
    
                Console.WriteLine(sql);
    
                /*This code produces the following output:
    
                SELECT
                [Title]
                FROM [Course] AS [c]
                WHERE ([CourseID] > @courid
                OR NOT EXISTS (SELECT
                [DepartmentID]
                FROM [Department] AS [d]
                WHERE ([d].[DepartmentID] = [c].[DepartmentID]
                AND [d].[Name] = @id)))
               */
            }
        }
    }
    

    Applies to

    .NET Standard

    2.x

    Back to top Generated by Appeon