IQueryAndOrBuilder<TModel>.OrWhereExists(ISqlBuilder sqlBuilder) Method
.NET Standard 2.x
Adds the OR
logical operator and a search condition to the WHERE clause; and uses EXISTS
to test for the existence of the record returned from a subquery.
Namespace: SnapObjects.Data
Assembly: SnapObjects.Data.dll
Syntax
IQueryAndOrBuilder<TModel> OrWhereExists(ISqlBuilder sqlBuilder);
Parameters
sqlBuilder
SnapObjects.Data.ISqlBuilder
An ISqlBuilder
object which represents a SQL subquery on the right of the EXISTS
operator.
Returns
Returns anIQueryAndOrBuilder<TModel>
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 OrWhereExists method to add an OR EXISTS condition to the WHERE clause. In this example, the EXISTS condition specifies that the data must exist in the result set of a subquery.
using Appeon.ApiDoc.Models.School;
using SnapObjects.Data;
using System;
using System.Threading.Tasks;
namespace Appeon.ApiDoc.IQueryAndOrBuilderExamples
{
public class OrWhereExistsExample
{
private SchoolContext _context;
public OrWhereExistsExample(SchoolContext dataContext)
{
// Sets Data Context
_context = dataContext;
}
public async Task<int> Example()
{
// Get a QueryBuilder.
var Builder = _context.SqlModelMapper.GetQueryBuilder<Department>();
// Defines a subquery.
var subsqlbuilder = new SqlQueryBuilder();
subsqlbuilder.Select("1")
.From("Department")
.Where("departmentid", SqlBuilder.Parameter<int>("id"));
// Defines a subquery.
var subsqlbuilder2 = new SqlQueryBuilder();
subsqlbuilder2.Select("1")
.From("Department")
.Where("departmentid", SqlBuilder.Parameter<int>("id2"));
// Specifies the WHERE EXIST condition:
// the data exists in the result set of the subquery.
Builder.WhereExists(subsqlbuilder)
.OrWhereExists(subsqlbuilder2);
// Data with departmentID = 4 exists
// but data with departmentID = 6 does not exists.
var result = (await Builder.LoadAsync(4, 6)).ToList();
if (result.Count != 0)
{
Console.WriteLine("Can execute LoadAsync.");
}
else
{
Console.WriteLine("Cannot execute LoadAsync.");
}
return result.Count;
/*This code example produces the following output:
Can execute LoadAsync.
*/
}
}
}
Example Refer To
Model Class: Department
Applies to
.NET Standard
2.x