v6.x
- Oracle support (thank you @Skimmenthal13)
- Asynchronous APIs
- Updated dependencies
- Bugfixes
- Minor breaking changes (API name changes)
v5.0.x
- Breaking changes (class and enum name changes)
- Major internal refactor, code cleanup, and consistency
- Event handler for query results
- Abstract classes and implementations for for database-specific helpers and clients
- Support for GUID type
- More consistency in test projects
- Bugfixes, retargeting to include .NET Framework 4.8 and .NET 7.0
v4.1.x
- Minor breaking changes
- Moved debug settings and logger into
DatabaseSettings
- Dependency updates
- Validated support for MariaDB
v4.0.0
- Breaking changes
- Internal refactor
- Use of external library
ExpressionTree
forExpr
class, replacesExpression
class - Use of external library
ExpressionTree
forOperatorEnum
class, replacesOperator
enum Expression.LeftTerm
is nowExpr.Left
Expression.RightTerm
is nowExpr.Right
- Reduced dependency clutter
v3.3.2
- Support for BLOB data types using
byte[]
- SQL Server:
varbinary(max)
- Sqlite:
blob
- Postgresql:
bytea
- Mysql:
longblob
- SQL Server:
v3.3.0
- Breaking change: update and insert will now correctly set values to
null
- Minor refactor to SQL query builders
- Better support for DateTimeOffset
v3.2.0
- New APIs: Sum, Count, Exists
v3.1.0
- Breaking change: removal of .NET Framework and upgrade to .NET standard 2.1
- DatabaseSettings class
- New constructors
v3.0.1.2
- Migrate to Microsoft.Data.Sqlite for DatabaseWrapper.Sqlite
v3.0.1
- Support for 'Between' operator (thank you @twobytescy)
v3.0.0
- Major refactor, minor breaking changes
- Broke apart DatabaseWrapper into several database-specific projects; DatabaseWrapper itself can still target any
v2.0.5
- Added COLLATE NOCASE to Sqlite TEXT column creation
v2.0.4
- Truncate table fix
v2.0.3
- String names for serialized enum members
v2.0.2
- Fix Sqlite field name encapsulation character
v2.0.1
- Change Sqlite timestamp fields from NUMERIC to TEXT
v2.0.0
- Support for Sqlite (.NET Framework 4.6.1 and Sqlite seems to have issues, but .NET Core works well)
- For Microsoft SQL Server, MySQL, and PostgreSQL, use the original full constructors
- For Sqlite, use the simplified constructor
DatabaseClient(string filename)
- Update dependencies (and update minimum .NET Framework required to .NET Framework 4.6.1)
v1.5.1
- INSERT fix for MySQL
v1.5.0
- Breaking changes; improved logging setup
v1.4.7
- Fix bug with describing a table returning redundant rows
v1.4.5
- XML documentation
v1.4.x
- Expose
Type
property inDatabaseClient
- Encapsulate table names in queries with the appropriate characters
- Microsoft SQL:
[tablename]
- MySQL:
`tablename`
- PostgreSQL:
"tablename"
- Microsoft SQL:
- Add support for CreateTable and DropTable operations, please note the following constraints:
- For PostgreSQL, automatically uses
SERIAL PRIMARY KEY
for primary keys - For Microsoft SQL, automatically creates a constraint and assumes primary key type is
int
- For Microsoft SQL, DateTime types are created as
datetime2
- For MySQL, automatically applies
AUTO_INCREMENT
to primary keys - For MySQL, assumes
Engine=InnoDB
andAUTO_INCREMENT=1
- For a full list of supported data types and how they are cast, please refer to:
DataType.cs
, andDataTypeFromString
method inDatabaseClient.cs
- For PostgreSQL, automatically uses
v1.3.x
- Rework of MSSQL SELECT with pagination, now requires ORDER BY clause to be set (breaking change)
- Long-lived connections (rather than re-opening per query)
- IDisposable support
v1.2.x
- Retarget to support both .NET Core 2.0 and .NET Framework 4.5.2.
- Exposed SanitizeString through DatabaseClient
- New signatures for PrependAnd and PrependOr to make use easier
- PostgreSQL support
- Minor refactor
v1.1.x
- Added Trunate API
- Simplified (new) constructor for Expression
- Additional Helper static methods to convert DataTable to useful objects (List, Dictionary, List, dynamic)
- Instance method to create timestamp for the given database type.
- Support for string for database type in timestamp and where clause builders
- New constructor using string for dbtype instead of enum
- Raw query support
- Pagination support in SELECT queries: use indexStart, maxResults, and orderByClause (all are required)
- Numerous bugfixes