SelectStatementLinqExtensions

Classes > Nimblesite.Sql.Model > SelectStatementLinqExtensions

LINQ expression extensions for building SQL statements

public static class SelectStatementLinqExtensions

Methods

From(string, string?)

public static SelectStatementBuilder From(this string tableName, string? alias = null)

Creates a new SELECT query from a table name

Parameters:

Name Type Description
tableName String
alias String

Returns: SelectStatementBuilder

Select<T>(SelectStatementBuilder, Expression<Func<T, object>>)

public static SelectStatementBuilder Select<T>(this SelectStatementBuilder builder, Expression<Func<T, object>> selector)

Adds SELECT columns using a projection expression

Parameters:

Name Type Description
builder SelectStatementBuilder
selector Object>>

Returns: SelectStatementBuilder

Select(SelectStatementBuilder, params (string? tableAlias, string columnName)[])

public static SelectStatementBuilder Select(this SelectStatementBuilder builder, params (string? tableAlias, string columnName)[] columns)

Adds SELECT columns using table alias and column name pairs

Parameters:

Name Type Description
builder SelectStatementBuilder
columns String>[]

Returns: SelectStatementBuilder

SelectAll(SelectStatementBuilder, string?)

public static SelectStatementBuilder SelectAll(this SelectStatementBuilder builder, string? tableAlias = null)

Adds SELECT * (all columns)

Parameters:

Name Type Description
builder SelectStatementBuilder
tableAlias String

Returns: SelectStatementBuilder

Where<T>(SelectStatementBuilder, Expression<Func<T, bool>>)

public static SelectStatementBuilder Where<T>(this SelectStatementBuilder builder, Expression<Func<T, bool>> predicate)

Adds a WHERE condition using an expression

Parameters:

Name Type Description
builder SelectStatementBuilder
predicate Boolean>>

Returns: SelectStatementBuilder

Where(SelectStatementBuilder, string, object)

public static SelectStatementBuilder Where(this SelectStatementBuilder builder, string columnName, object value)

Adds a WHERE condition using a simple equality check

Parameters:

Name Type Description
builder SelectStatementBuilder
columnName String
value Object

Returns: SelectStatementBuilder

Where(SelectStatementBuilder, string, ComparisonOperator, object)

public static SelectStatementBuilder Where(this SelectStatementBuilder builder, string columnName, ComparisonOperator @operator, object value)

Adds a WHERE condition with a comparison operator

Parameters:

Name Type Description
builder SelectStatementBuilder
columnName String
operator ComparisonOperator
value Object

Returns: SelectStatementBuilder

And(SelectStatementBuilder, string, object)

public static SelectStatementBuilder And(this SelectStatementBuilder builder, string columnName, object value)

Adds an AND condition

Parameters:

Name Type Description
builder SelectStatementBuilder
columnName String
value Object

Returns: SelectStatementBuilder

Or(SelectStatementBuilder, string, object)

public static SelectStatementBuilder Or(this SelectStatementBuilder builder, string columnName, object value)

Adds an OR condition

Parameters:

Name Type Description
builder SelectStatementBuilder
columnName String
value Object

Returns: SelectStatementBuilder

InnerJoin(SelectStatementBuilder, string, string, string, string?, string?)

public static SelectStatementBuilder InnerJoin(this SelectStatementBuilder builder, string rightTable, string leftColumn, string rightColumn, string? leftTableAlias = null, string? rightTableAlias = null)

Adds an INNER JOIN

Parameters:

Name Type Description
builder SelectStatementBuilder
rightTable String
leftColumn String
rightColumn String
leftTableAlias String
rightTableAlias String

Returns: SelectStatementBuilder

LeftJoin(SelectStatementBuilder, string, string, string, string?, string?)

public static SelectStatementBuilder LeftJoin(this SelectStatementBuilder builder, string rightTable, string leftColumn, string rightColumn, string? leftTableAlias = null, string? rightTableAlias = null)

Adds a LEFT JOIN

Parameters:

Name Type Description
builder SelectStatementBuilder
rightTable String
leftColumn String
rightColumn String
leftTableAlias String
rightTableAlias String

Returns: SelectStatementBuilder

OrderBy(SelectStatementBuilder, string)

public static SelectStatementBuilder OrderBy(this SelectStatementBuilder builder, string columnName)

Adds ORDER BY ascending

Parameters:

Name Type Description
builder SelectStatementBuilder
columnName String

Returns: SelectStatementBuilder

OrderByDescending(SelectStatementBuilder, string)

public static SelectStatementBuilder OrderByDescending(this SelectStatementBuilder builder, string columnName)

Adds ORDER BY descending

Parameters:

Name Type Description
builder SelectStatementBuilder
columnName String

Returns: SelectStatementBuilder

OrderBy<T>(SelectStatementBuilder, Expression<Func<T, object>>)

public static SelectStatementBuilder OrderBy<T>(this SelectStatementBuilder builder, Expression<Func<T, object>> selector)

Adds multiple ORDER BY columns using expressions

Parameters:

Name Type Description
builder SelectStatementBuilder
selector Object>>

Returns: SelectStatementBuilder

GroupBy(SelectStatementBuilder, params string[])

public static SelectStatementBuilder GroupBy(this SelectStatementBuilder builder, params string[] columnNames)

Adds GROUP BY columns

Parameters:

Name Type Description
builder SelectStatementBuilder
columnNames String[]

Returns: SelectStatementBuilder

Take(SelectStatementBuilder, int)

public static SelectStatementBuilder Take(this SelectStatementBuilder builder, int count)

Sets the LIMIT value

Parameters:

Name Type Description
builder SelectStatementBuilder
count Int32

Returns: SelectStatementBuilder

Skip(SelectStatementBuilder, int)

public static SelectStatementBuilder Skip(this SelectStatementBuilder builder, int count)

Sets the OFFSET value

Parameters:

Name Type Description
builder SelectStatementBuilder
count Int32

Returns: SelectStatementBuilder

Distinct(SelectStatementBuilder)

public static SelectStatementBuilder Distinct(this SelectStatementBuilder builder)

Sets DISTINCT

Parameters:

Name Type Description
builder SelectStatementBuilder

Returns: SelectStatementBuilder

ToSqlStatement(SelectStatementBuilder)

public static SelectStatement ToSqlStatement(this SelectStatementBuilder builder)

Builds the final SelectStatement

Parameters:

Name Type Description
builder SelectStatementBuilder

Returns: SelectStatement