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