Appearance
π Changelog β
v1.8.5 (2025-11-20) β
- β¨ Add
Add Query.Value(DataRow row) - π Improve
QueryBuilder.IterateByOffset<T>()andQueryBuilder.Iterate()to properly stop when found end of the iteration
v1.8.4 (2025-10-02) β
- β¨ Add
Query.WhereExists() - β¨ Add
Query.WhereNotExists()
v1.8.3 (2025-09-22) β
- β¨
DuckDBAdd full support for importing from JSON and Parquet files - π Improve the logic for determining query type execution: Now, when the
QueryTypeisRAW, the builder usesRawQueryTyperather than alwaysQueryType
v1.8.2 (2025-09-21) β
- β¨ Add debug logging to help tracing library bugs and query errors
- π§
DuckDBFix duplicateRETURNING {column}rendering onINSERT
v1.8.1 (2025-09-20) β
- β¨
DuckDBAddQuery.OnConflict()support
v1.8.0 (2025-09-19) β
- β¨ Add
ReflectionCache - β¨ Add
ResultCache - β¨ Add
TinyText,MediumTextandLongTextcolumn data types - β¨ Add
Query.WhereGreater<T>() - β¨ Add
Query.WhereGreaterEquals<T>() - β¨ Add
Query.WhereLower<T>() - β¨ Add
Query.WhereLowerEquals<T>() - β¨ Add
Query.Is<T>() - β¨ Add
Query.IsNot<T>() - β¨ Add
Query.WhereNotIn<T>() - β¨
DuckDBAddQuery.__GetColumnDefinition()data type check for column length in to avoid setting length to colum data types that do not allow it - π Revamp
Connectordatabase connection management logic - π Remove unused
IConnectorManager - π Update
QueryBuilderenumerators logic - π Update
QueryBuilder.Execute<T>()to adjust to latest query execution flow changes - π Connector generic database logic is now handled by base class and not by each implementation
- π
PostgreSQLUpdateQueryBuilder._PrepareDbCommand()to add castedNpgsqlParametertoNpgsqlCommandinstead of adding anonymous object - π
DuckDBUpdateQuery.__GetMemberInfoDuckDBParameter()to convert whole numbers to their specific types - π
DuckDBUpdateQuery.__GetColumnDefinition()andQuery.__GetMemberInfoDuckDBParameter()to handleEnumsas strings - π
DuckDBUpdateQueryBuilder._PrepareDbCommand()to improve data type management - π Revert
Query._RenderSelectSentence()removal ofSELECT_UNIONcheck onSELECT(*) - π
DuckDBFixQueryBuilder._HandleQueryResult()to handleUnmanagedMemoryStreamand store them asMemoryStream
v1.7.1 (2025-09-14) β
- β¨
DuckDBAdded support forDuckDB - β¨ Add
QueryBuilder.IterateByOffset<T>()to iterate tables where there is not auto-increment key column to iterate by - π Update
Query.From()to add table name escaping - π Update
ExtensionMethods/DataRow.__HandleRowMemberInfo<T>()to handle a few edge cases on data serialization
v1.7.0 (2025-09-11) β
- β¨ Add
QueryBuildertransaction methods:QueryBuilder.Begin(),QueryBuilder.Rollback(),QueryBuilder.Commit() - β¨ Add
Query.OnConflict()support for upsert operations - π
PostgreSQLUpdateQuery.Value<T>() - π
MSSQLUpdateQuery.Value<T>()
v1.6.0 (2025-09-03) β
- β¨ Add support for
UNION,UNION ALL,INTERSECTandEXCEPTqueries
v1.5.5 (2025-09-01) β
- β¨ Add
ExpressionHelper.ExtractPropertyName<T>() - β¨ Add
byte[]array rendering toQuery._RenderPrepared() - π
PostgreSQLUpdateQuery.Value<T>()to avoid rendering system columns on insert - π
MSSQSLUpdateQuery.Value<T>()to avoid rendering system columns on insert - π Fix
Query.Set<T>() - π Fix
Query.Select<T>()
v1.5.4 (2025-09-01) β
- β¨ Add XML documentation to code
v1.5.3 (2025-08-31) β
- β¨ Add
Query.Distinct()
v1.5.2 (2025-08-30) β
- β¨ Add
Query._Engine - π Improve
ConnectorManagerthread safety - π Fix
Query.Select<T>()not takingSystemColumn.Nameproperty as the system column name to be retrieved
v1.5.1 (2025-08-30) β
- β¨ Add
SchemaDefinition.SystemColumn - β¨ Add
SchemaDefinition.DatabaseEngine - π Update
QueryBuilder.Iterate<T>()
v1.5.0 (2025-08-28) β
- β¨ Add
Type.GetColumnName() - β¨ Add
QueryBuilder.Execute<T>()to provide return of Last Insert Id, AffectedRows, and Query Success - β¨
MySQLAdd little patch to supportLength=-1onCharandVarcharcolumn types - β¨
PostgreSQLAddRETURNINGsupport forINSERTqueries - β¨
MSSQLAddOUTPUT Inserted.support forINSERTqueries - π Improve Key definition
v1.4.1 (2025-08-28) β
- β¨
MSSQLAdded support forMicrosoft SQL Server - β¨ Add
Query._GetKeyColumnName() - π Fix table key rendering on table create
v1.4.0 (2025-08-28) β
- β¨ Add
SchemaDefinition/ForeignKeyconstructor to support direct reference for table classes - β¨ Add
SchemaDefinition/Columnconstructor to support joined columns - β¨ Add joined table support for
SELECTand the result iterators - β¨ Add Query Expression support to
Query.Join() - β¨ Add
Query.Select<T>() - β¨ Add
QueryBuilderselectTuplesupport - π Update
QueryBuilderto improve query result handling when mixing columns from different tables - π Update
QueryBuilder.Iterate()to change ulong for long to widen database engine support - π Update
SchemaDefinition/NamedStructureto set Name asprotected - π Improve
DataRowparsing to custom class
v1.3.3 (2025-08-26) β
- β¨ Add support for .Net 6
v1.3.2 (2025-08-25) β
- β¨ Add Query.GetColumnDataType()
v1.3.1 (2025-08-25) β
- β¨ Add
ConnectorManager.WithBeforeQueryExecutionAction() - β¨ Add
ConnectorManager.WithAfterQueryExecutionAction() - π Update
ExtensionMethods.DataRowto avoid serializing values not retrieved by a query result - π Update
QueryBuilder.OnQueryExceptionActionto now take the query and the exception as parameters - π Fix
QueryBuilder.OnQueryExceptionAction()invocation missing the query argument
v1.3.0 (2025-08-25) β
- β¨ Add
Query Expressionsupport for query building:Select,Set,Value,Where,WhereIn,WhereLike,GroupBy,OrderBy - β¨ Add
QueryBuilder.ExecuteScalar()to add a direct scalar execution method - β¨ Add
QueryBuilder.ScalarValueto store theQueryBuilder.ExecuteScalar()value and the first column from the first row in a regular select - β¨ Add
QueryBuilder.WithBeforeQueryExecutionAction()andQueryBuilder.WithAfterQueryExecutionAction()to setup callbacks before and after a query execution happens (logging purposes mostly)
v1.2.1 (2025-08-23) β
- π
PostgreSQLImprove query rendering for printing purposes only
v1.2.0 (2025-08-22) β
- β¨
PostgreSQLAdded support forPostgreSQL - β¨ Add
SchemaDefinition/Column.Check - β¨ Add
ConnectorManager.WithConnectionSetup() - π Update
ConnectorManagerto ease overriding connection instantiation and setup - π Update
Queryto improve query preparation overriding - π Removed the ability to insert a null value on a
Primary Keycolumn, it will now either insert a not-null value or not insert it - π Extension methods refactor
v1.1.1 (2025-08-21) β
- β¨ Add
ConnectionManager.WithOnQueryExceptionAction()to setup a callback when an exception occurs - β¨ Add
ColumnDataType.Enum - β¨ Add
Query.CreateTable()aliases - π Improve
Querychange detection for rendering - π Improve
DataRowserialization - π Improve
Tablekey definition - π Improve
ColumnandKeyrendering on table creation - π Moved
ConnectorManager.QueryBuilder()andConnectorManager.DetachedQueryBuilder()methods to BaseConnectorManagerinstead of each implementation
v1.1.0 (2025-08-20) β
- β¨ Add support for ColumnDataType
- β¨ Add SchemaDefinition/Column class to support generic database column data typing
v1.0.2 (2025-08-20) β
- β¨ Add
Query.WhereLike()operator - π Update
Query.__RenderWhereValue()to handleEnumvalues withDescriptionattribute - π Update
SchemaDefinition/ForeignKeydefinition
v1.0.1 (2025-08-20) β
- π General refactor
v1.0.0 (2025-08-19) β
- β¨
MySQLAdded support forMySQL - β¨
SQLiteAdded support forSQLite
