Query

Ecng.Data.Sql

Represents a composable SQL query built from a sequence of render actions.

属性

Actions
public IList<Action<ISqlDialect, StringBuilder>> Actions { get; }
value = query.Actions

List of render actions that produce the SQL text.

方法

AddAction
public Query AddAction(Action<ISqlDialect, StringBuilder> action)
result = query.AddAction(action)

Adds a render action to the query.

action
Action that appends SQL text to a StringBuilder.
All
public Query All(string tableAlias)
result = query.All(tableAlias)

Appends alias.* to select all columns from a table alias.

tableAlias
Table alias.
And
public Query And()
result = query.And()

Appends AND keyword.

As
public Query As()
result = query.As()

Appends AS keyword.

Asc
public Query Asc()
result = query.Asc()

Appends ASC keyword.

Avg
public Query Avg()
result = query.Avg()

Appends AVG function name.

Begin
public Query Begin()
result = query.Begin()

Appends BEGIN keyword.

Between
public Query Between(string lowParameter, string highParameter)
result = query.Between(lowParameter, highParameter)

Appends a BETWEEN clause referencing two parameters by name. The dialect prepends its own prefix (e.g. @, $) at render time so callers must pass plain parameter names — passing raw values here would land them as literals in the SQL and is not supported.

lowParameter
Lower bound parameter name (no prefix).
highParameter
Upper bound parameter name (no prefix).
BitwiseAnd
public Query BitwiseAnd()
result = query.BitwiseAnd()

Appends bitwise AND operator.

BitwiseOr
public Query BitwiseOr()
result = query.BitwiseOr()

Appends bitwise OR operator.

Case
public Query Case()
result = query.Case()

Appends CASE keyword.

Cast
public Query Cast()
result = query.Cast()

Appends CAST function name.

CharIndex
public Query CharIndex()
result = query.CharIndex()

Appends CHARINDEX function name.

CloseBracket
public Query CloseBracket()
result = query.CloseBracket()

Appends a closing parenthesis.

Column
public Query Column(string column)
result = query.Column(column)

Appends a quoted column reference.

column
Column name.
Column
public Query Column(string owner, string column)
result = query.Column(owner, column)

Appends a qualified column reference (owner.column).

owner
Table alias or owner name.
column
Column name.
Comma
public Query Comma()
result = query.Comma()

Appends a comma separator.

Concat
public Query Concat()
result = query.Concat()

Appends dialect-specific string concatenation operator (+ for SQL Server, || for PostgreSQL/SQLite).

Convert
public Query Convert()
result = query.Convert()

Appends CONVERT function name.

CopyTo
public void CopyTo(Query destination)
query.CopyTo(destination)

Copies all actions from this query to the query.

destination
Target query to copy actions into.
Count
public Query Count()
result = query.Count()

Appends COUNT keyword.

CreateBuildCondition
public static Query CreateBuildCondition(string column, ComparisonOperator op, string paramName, bool castNumericComparison)
result = Query.CreateBuildCondition(column, op, paramName, castNumericComparison)

Creates a single WHERE condition.

CreateBuildInCondition
public static Query CreateBuildInCondition(string column, IEnumerable<string> paramNames)
result = Query.CreateBuildInCondition(column, paramNames)

Creates an IN condition.

CreateCreateTable
public static Query CreateCreateTable(string tableName, IDictionary<string, Type> columns, string identityColumn, IEnumerable<string> primaryKeyColumns)
result = Query.CreateCreateTable(tableName, columns, identityColumn, primaryKeyColumns)

Creates a CREATE TABLE query.

tableName
Table name.
columns
Column definitions (name → CLR type).
identityColumn
Optional auto-increment identity column name.
primaryKeyColumns
Optional primary key column(s) (without auto-increment). Ignored when is set.
CreateDelete
public static Query CreateDelete(string tableName, string whereClause)
result = Query.CreateDelete(tableName, whereClause)

Creates a DELETE query.

CreateDropTable
public static Query CreateDropTable(string tableName)
result = Query.CreateDropTable(tableName)

Creates a DROP TABLE query.

CreateInsert
public static Query CreateInsert(string tableName, IEnumerable<string> columns)
result = Query.CreateInsert(tableName, columns)

Creates an INSERT query.

CreateInsert
public static Query CreateInsert(string tableName, IEnumerable<string> columns, string returningIdColumn)
result = Query.CreateInsert(tableName, columns, returningIdColumn)

Creates an INSERT query that optionally appends a dialect-specific RETURNING clause for the given identity column. Useful for PostgreSQL, where a single-statement INSERT…RETURNING is the only pool-safe way to read back a server-generated identity. Pass for non-identity inserts and for dialects that read identity via a separate select (SqlServer/SQLite).

CreateSelect
public static Query CreateSelect(string tableName, string whereClause, string orderByClause, long? skip, long? take)
result = Query.CreateSelect(tableName, whereClause, orderByClause, skip, take)

Creates a SELECT query with optional pagination.

CreateUpdate
public static Query CreateUpdate(string tableName, IEnumerable<string> columns, string whereClause)
result = Query.CreateUpdate(tableName, columns, whereClause)

Creates an UPDATE query.

CreateUpsert
public static Query CreateUpsert(string tableName, IEnumerable<string> allColumns, IEnumerable<string> keyColumns)
result = Query.CreateUpsert(tableName, allColumns, keyColumns)

Creates an UPSERT (INSERT or UPDATE) query.

DataLength
public Query DataLength()
result = query.DataLength()

Appends DATALENGTH function name.

Date
public Query Date()
result = query.Date()

Appends DATE type name.

DateAdd
public Query DateAdd()
result = query.DateAdd()

Appends DATEADD function name.

DatePart
public Query DatePart()
result = query.DatePart()

Appends DATEPART function name.

Delete
public Query Delete()
result = query.Delete()

Appends DELETE keyword.

Desc
public Query Desc()
result = query.Desc()

Appends DESC keyword.

Distinct
public Query Distinct()
result = query.Distinct()

Appends DISTINCT keyword.

Divide
public Query Divide()
result = query.Divide()

Appends / arithmetic operator.

Else
public Query Else()
result = query.Else()

Appends ELSE keyword.

End
public Query End()
result = query.End()

Appends END keyword.

Equal
public Query Equal()
result = query.Equal()

Appends = operator.

Equals
public Query Equals(string tableAlias, string[] columns)
result = query.Equals(tableAlias, columns)

Appends equality conditions for the specified columns joined with AND.

tableAlias
Table alias used in column references.
columns
Column names to compare against parameters.
Escape
public Query Escape(char escapeChar)
result = query.Escape(escapeChar)

Appends an ESCAPE clause declaring as the escape character of the preceding LIKE pattern.

escapeChar
Escape character, normally EscapeChar.

返回值: This query.

Exact
public Query Exact(string tableAlias, string[] columns)
result = query.Exact(tableAlias, columns)

Appends a comma-separated list of specific columns from a table alias.

tableAlias
Table alias.
columns
Column names to include.
Exists
public Query Exists()
result = query.Exists()

Appends EXISTS keyword.

FormatMessage
public Query FormatMessage()
result = query.FormatMessage()

Appends FORMATMESSAGE function name.

From
public Query From()
result = query.From()

Appends FROM keyword.

GroupBy
public Query GroupBy()
result = query.GroupBy()

Appends GROUP BY keyword.

Having
public Query Having()
result = query.Having()

Appends HAVING keyword.

Identity
public Query Identity(string idCol)
result = query.Identity(idCol)

Appends the dialect-specific identity select expression.

idCol
Identity column name.
If
public Query If()
result = query.If()

Appends IF keyword.

In
public Query In()
result = query.In()

Appends IN keyword.

InnerJoin
public Query InnerJoin()
result = query.InnerJoin()

Appends INNER JOIN keyword.

Insert
public Query Insert()
result = query.Insert()

Appends INSERT keyword.

Into
public Query Into(string tableName, string[] columns)
result = query.Into(tableName, columns)

Appends INTO clause with table name and column list.

tableName
Target table name.
columns
Column names for the insert.
Is
public Query Is()
result = query.Is()

Appends IS keyword.

IsFalse
public Query IsFalse()
result = query.IsFalse()

Appends dialect-specific boolean false comparison (= 0 for SQL Server/SQLite, = FALSE for PostgreSQL).

IsNot
public Query IsNot()
result = query.IsNot()

Appends IS NOT keyword.

IsNull
public Query IsNull()
result = query.IsNull()

Appends dialect-aware null-coalescing function name (ISNULL for SQL Server, COALESCE for PG/SQLite).

IsNull
public Query IsNull(string columnName)
result = query.IsNull(columnName)

Appends a column IS NULL condition.

columnName
Column name to check.
IsParamNull
public Query IsParamNull(string columnName)
result = query.IsParamNull(columnName)

Appends a parameter IS NULL condition.

columnName
Parameter name to check.
IsTrue
public Query IsTrue()
result = query.IsTrue()

Appends dialect-specific boolean true comparison (= 1 for SQL Server/SQLite, = TRUE for PostgreSQL).

LeftJoin
public Query LeftJoin()
result = query.LeftJoin()

Appends LEFT JOIN keyword.

Len
public Query Len()
result = query.Len()

Appends dialect-specific length function (LEN for SQL Server, LENGTH for PostgreSQL/SQLite).

Less
public Query Less()
result = query.Less()

Appends < operator.

LessOrEqual
public Query LessOrEqual()
result = query.LessOrEqual()

Appends <= operator.

Like
public Query Like()
result = query.Like()

Appends LIKE keyword.

Like
public Query Like(string columnName)
result = query.Like(columnName)

Appends a LIKE condition for the specified column with a matching parameter. The column name is validated against a conservative identifier shape before being interpolated into SQL — anything else throws so a caller-controlled column name cannot smuggle SQL through the LIKE clause (which previously interpolated both as identifier and parameter name without checks).

columnName
Column name to match.
LikeLiteral
public Query LikeLiteral(Action appendNeedle, bool wildcardBefore, bool wildcardAfter)
result = query.LikeLiteral(appendNeedle, wildcardBefore, wildcardAfter)

Appends a whole LIKE predicate tail that matches literally the text writes: the LIKE keyword, the requested wildcards, the needle wrapped in nested REPLACE calls neutralising every Metacharacters, and the ESCAPE clause declaring EscapeChar.

appendNeedle
Appends the needle expression — a bound parameter, a column, any expression.
wildcardBefore
Match any text before the needle.
wildcardAfter
Match any text after the needle.

返回值: This query.

Lower
public Query Lower()
result = query.Lower()

Appends LOWER function name.

LTrim
public Query LTrim()
result = query.LTrim()

Appends LTRIM function name.

Max
public Query Max()
result = query.Max()

Appends MAX function name.

Min
public Query Min()
result = query.Min()

Appends MIN function name.

Minus
public Query Minus()
result = query.Minus()

Appends - arithmetic operator.

Modulo
public Query Modulo()
result = query.Modulo()

Appends % arithmetic operator.

More
public Query More()
result = query.More()

Appends > operator.

MoreOrEqual
public Query MoreOrEqual()
result = query.MoreOrEqual()

Appends >= operator.

Multiply
public Query Multiply()
result = query.Multiply()

Appends * arithmetic operator.

NewId
public Query NewId()
result = query.NewId()

Appends dialect-specific NEWID() expression.

NewLine
public Query NewLine()
result = query.NewLine()

Appends a new line.

Not
public Query Not()
result = query.Not()

Appends NOT keyword.

NotEqual
public Query NotEqual()
result = query.NotEqual()

Appends <> operator.

Now
public Query Now()
result = query.Now()

Appends dialect-specific NOW() expression.

Null
public Query Null()
result = query.Null()

Appends NULL keyword.

NullIf
public Query NullIf()
result = query.NullIf()

Appends NULLIF function name.

On
public Query On()
result = query.On()

Appends ON keyword.

OpenBracket
public Query OpenBracket()
result = query.OpenBracket()

Appends an opening parenthesis.

Or
public Query Or()
result = query.Or()

Appends OR keyword.

OrderBy
public Query OrderBy()
result = query.OrderBy()

Appends ORDER BY keyword.

Over
public Query Over()
result = query.Over()

Appends OVER keyword.

Param
public Query Param(string name)
result = query.Param(name)

Appends a dialect-prefixed parameter reference.

name
Parameter name.
Plus
public Query Plus()
result = query.Plus()

Appends + arithmetic operator.

Rand
public Query Rand()
result = query.Rand()

Appends RAND() function call.

Raw
public Query Raw(string name)
result = query.Raw(name)

Appends a raw SQL string.

name
Raw SQL text to append.
Render
public virtual string Render(ISqlDialect dialect)
result = query.Render(dialect)

Renders the query to a SQL string using the specified dialect.

dialect
SQL dialect used for quoting and formatting.

返回值: Rendered SQL string.

Replace
public Query Replace()
result = query.Replace()

Appends REPLACE function name.

Returning
public Query Returning(string idColumn)
result = query.Returning(idColumn)

Appends a dialect-specific RETURNING clause to the previous INSERT in this query (no-op for dialects that don't support it).

RowNumber
public Query RowNumber()
result = query.RowNumber()

Appends ROW_NUMBER() function call.

RTrim
public Query RTrim()
result = query.RTrim()

Appends RTRIM function name.

Select
public Query Select()
result = query.Select()

Appends SELECT keyword.

Set
public Query Set(string tableAlias, string[] columns)
result = query.Set(tableAlias, columns)

Appends a SET clause assigning parameterized values to columns.

tableAlias
Table alias used in the assignment.
columns
Column names to set.
Skip
public Query Skip(string skip)
result = query.Skip(skip)

Appends dialect-specific SKIP (OFFSET) clause.

skip
Parameter name for the number of rows to skip.
Star
public Query Star()
result = query.Star()

Appends the * wildcard.

SubString
public Query SubString()
result = query.SubString()

Appends SUBSTRING function name.

Sum
public Query Sum()
result = query.Sum()

Appends SUM function name.

SysNow
public Query SysNow()
result = query.SysNow()

Appends dialect-specific SYSDATETIME() expression.

SysUtcNow
public Query SysUtcNow()
result = query.SysUtcNow()

Appends dialect-specific SYSUTCDATETIME() expression.

Table
public Query Table(string tableName, string alias)
result = query.Table(tableName, alias)

Appends a quoted table name followed by its alias.

tableName
Table name.
alias
Table alias.
Take
public Query Take(string take)
result = query.Take(take)

Appends dialect-specific TAKE (LIMIT/FETCH) clause.

take
Parameter name for the number of rows to take.
Then
public Query Then()
result = query.Then()

Appends THEN keyword.

Top
public Query Top(long top)
result = query.Top(top)

Appends TOP clause with the specified row count.

top
Maximum number of rows.
Union
public Query Union()
result = query.Union()

Appends UNION keyword.

UnionAll
public Query UnionAll()
result = query.UnionAll()

Appends UNION ALL keyword.

Update
public Query Update(string tableName)
result = query.Update(tableName)

Appends UPDATE keyword with the specified table name.

tableName
Table name to update.
Upper
public Query Upper()
result = query.Upper()

Appends UPPER function name.

UtcNow
public Query UtcNow()
result = query.UtcNow()

Appends dialect-specific UTC NOW() expression.

Values
public Query Values(string[] valueNames)
result = query.Values(valueNames)

Appends a VALUES clause with parameterized value placeholders.

valueNames
Parameter names for the values.
When
public Query When()
result = query.When()

Appends WHEN keyword.

Where
public Query Where()
result = query.Where()

Appends WHERE keyword.

With
public Query With()
result = query.With()

Appends WITH keyword.

字段

SkipParameterName
public const string SkipParameterName
value = Query.SkipParameterName

Parameter name used for SELECT pagination offset.

TakeParameterName
public const string TakeParameterName
value = Query.TakeParameterName

Parameter name used for SELECT pagination limit.

WrapColumn
public Queue<Action<bool, Query>> WrapColumn
value = query.WrapColumn

Queue of wrapping actions applied around column references. Translation-scoped: a single instance is shared between all Query objects produced for one query translation pass and is mutated single-threaded by that pass. Concurrent use across translation Contexts is not supported. The Boolean argument signals direction: true before the column is emitted, false after.