Class QueryBuilder
- Namespace
- Cuemon.Data
- Assembly
- Cuemon.Data.dll
An abstract class for building T-SQL statements from table and columns definitions.
public abstract class QueryBuilder
- Inheritance
-
QueryBuilder
- Derived
Constructors
QueryBuilder()
Initializes a new instance of the QueryBuilder class.
protected QueryBuilder()
QueryBuilder(String, IDictionary<String, String>)
Initializes a new instance of the QueryBuilder class.
protected QueryBuilder(string tableName, IDictionary<string, string> keyColumns)
Parameters
tableName
StringThe name of the table or view.
keyColumns
IDictionary<String, String>The key columns to be used in this QueryBuilder instance.
QueryBuilder(String, IDictionary<String, String>, IDictionary<String, String>)
Initializes a new instance of the QueryBuilder class.
protected QueryBuilder(string tableName, IDictionary<string, string> keyColumns, IDictionary<string, string> columns)
Parameters
tableName
StringThe name of the table or view.
keyColumns
IDictionary<String, String>The key columns to be used in this QueryBuilder instance.
columns
IDictionary<String, String>The none-key columns to be used in this QueryBuilder instance.
Properties
Columns
Gets the none-key columns to be used in the QueryBuilder instance.
public IDictionary<string, string> Columns { get; }
Property Value
- IDictionary<String, String>
The none-key columns to be used in the QueryBuilder instance.
EnableDirtyReads
Gets or sets a value indicating whether the data source should try to prevent locking from readonly queries.
public bool EnableDirtyReads { get; set; }
Property Value
- Boolean
true
if the data source should try to prevent locking from readonly queries; otherwise,false
.
EnableReadLimit
Gets or sets a value indicating whether a query is restricted in how many records (ReadLimit) can be retrieved from a repository. Default is false.
public bool EnableReadLimit { get; set; }
Property Value
- Boolean
true
if a query is restricted in how many records (ReadLimit) can be retrieved from a repository; otherwise,false
.
EnableTableAndColumnEncapsulation
Gets or sets a value indicating whether an encapsulation should be committed automatically on table and column names.
public bool EnableTableAndColumnEncapsulation { get; set; }
Property Value
- Boolean
true
if an encapsulation should be committed automatically on table and column names; otherwise,false
.
KeyColumns
Gets the key columns to be used in the QueryBuilder instance.
public IDictionary<string, string> KeyColumns { get; }
Property Value
- IDictionary<String, String>
The key columns to be used in the QueryBuilder instance.
ReadLimit
Gets or sets a value limiting the maximum amount of records that can be retrieved from a repository. Default is 1000.
public int ReadLimit { get; set; }
Property Value
- Int32
The maximum amount of records that can be retrieved from a repository.
TableName
Gets or sets the name of the table or view.
public string TableName { get; set; }
Property Value
- String
The name of the table or view.
Methods
Append(String)
Appends the specified query fragment to the end of this instance.
protected QueryBuilder Append(string queryFragment)
Parameters
queryFragment
StringThe query fragment to append.
Returns
- QueryBuilder
A reference to this instance after the operation has completed.
Append(String, Object[])
Appends a formatted query fragment, which contains zero or more format specifications, to the end of this instance. Each format specification is replaced by the string representation of a corresponding object argument.
protected QueryBuilder Append(string queryFragment, params object[] args)
Parameters
Returns
- QueryBuilder
A reference to this instance after the operation has completed.
EncodeFragment(QueryFormat, IEnumerable<String>, Boolean)
Encodes the specified sequence of values
into the desired format
of fragments.
public static string EncodeFragment(QueryFormat format, IEnumerable<string> values, bool distinct = false)
Parameters
format
QueryFormatOne of the enumeration values that specifies the fragment to produce.
values
IEnumerable<String>The IEnumerable<T> to convert into the desired
format
of fragments.distinct
Booleanif set to
true
,values
will be filtered for doublets.
Returns
- String
A query fragment in the desired format.
Exceptions
- ArgumentNullException
values
cannot be null.- ArgumentException
values
contains no elements.
GetQuery(QueryType)
Create and returns the query from the specified QueryType.
public string GetQuery(QueryType queryType)
Parameters
queryType
QueryTypeType of the query to create.
Returns
- String
The result of the builder as a T-SQL query.
GetQuery(QueryType, String)
Create and returns the builded query from the specified QueryType.
public abstract string GetQuery(QueryType queryType, string tableName)
Parameters
queryType
QueryTypeType of the query to create.
tableName
StringThe name of the table or view. Overrides the class wide tableName.
Returns
ToString()
public override string ToString()