Release notes for Dapper.FastCrud - MoonStorm/FastCrud GitHub Wiki
Dapper.FastCrud
3.3
Fixed an issue where the SQL formatter was not generating proper SQL when schemas were used.
The standalone entity and property entity formattables will now default to T and TC respectively when an alias is provided.
Fixed an issue where calling OrmConfiguration.ClearEntityRegistrations was not enough to clear the state between switching dialects via OrmConfiguration.DefaultDialect.
Schema tests added for the SQL formatter.
Tests added to cover schemas for the MsSql, PostgreSql and SQLAnywhere dialects.
3.2
Added support for DateOnly and TimeOnly data types, introduced in .NET6,
however provider support isn't all that great across database flavors.
Please check this discussion thread for more info.
Dependencies, tests and benchmarks updated.
3.1
Added support for SQL Anywhere
Added support for 'rowversion' type columns for the SQL Server dialect.
Dependencies, tests and benchmarks updated.
3.0:
Added support for .NET Standard 2.1
Extended support for the MetadataType attribute in .NET Standard 2.1
Bulk update can now be used with parameters.
Format specifier ":P" added for SQL parameters.
Format specifiers extended to support resolution via aliases in JOINs (e.g. "nameof(prop):of alias").
Methods adjusted for nullable support.
[Breaking change] Clean separation for the formatter and the sql builder. As a result, the access to the formatter got moved out of the ISqlBuilder and into the Sql static class.
Extended the functionality of the Sql "formattables", exposed via the Sql static class, to allow for easy access to both the raw resolved names and their SQL ready counterparts.
Relationships have been reworked:
[Breaking change] The fluent mapping setup has changed for setting up relationships.
The limit of 7 entities in a JOIN was removed.
The main entity and the JOINed entities can now be aliased. It is now recommended to do so when working with multiple entities in a statement for easy targeting in the WHERE clause.
JOIN support has been extended to the GET and COUNT methods.
SQL statements no longer require the presence of a relationship preset in the mappings. You can join with whatever you want, using whatever navigation properties you want (or none) and with any ON clause you desire.
Added support for self referenced entities (via InverseProperty attribute / fluent mappings / directly in the query).
Added support for one-to-one relationships (via InverseProperty attribute / fluent mappings / directly in the query).
Added support for multiple references to the same target (via InverseProperty attribute / fluent mappings / directly in the query).
2.6:
Upgraded the Dapper dependency.
Added support for .NET Standard 2.0 and .NET Framework 4.6.1
InsertAsync now calling the corresponding async Dapper method.
Added support for TimeSpan.
CI relocated.
2.4.1:
Fixed an issue that was causing duplicate entities to be returned in case of JOINs involving one-to-many relationships.
Removed the validation that was stopping TOP and SKIP to be used without the presence of a SORT BY clause.
2.4.0:
Added support for JOINs.
Added support for .NET Core & .NET Standard.
The obsolete extension methods have been removed.
Added support for inserting entities mapped to tables having database generated non-key columns and no database generated key columns in SqLite and MySql.
Added support for composite primary keys in SqLite.
2.3.2:
Duplicate delimiters avoided if an already delimited identifier was passed as an alias.
Fixed a memory leak caused by holding references to custom entity mapping overrides.
2.3.0:
BREAKING CHANGE: the logic for properties marked with DatabaseGeneratedAttribute has changed.
BREAKING CHANGE: the fluent way of specifying database generated values for the columns, including default values, has changed.
BREAKING CHANGE: entities are being updated with the computed values on return from an UPDATE.
NotMappedAttribute is now supported.
DatabaseGeneratedDefaultValueAttribute was introduced to mark the properties bound to columns having default values that should be retrieved from the database.
More information about the breaking changes can be found on the project site.
2.2.x:
BREAKING CHANGE: due to the large number of arguments, in some cases, a new definition was added for all the extension methods and the existing methods were marked as obsolete with some of them losing argument optionality.
Full support for table and column name overrides.
SQL delimiters used throughout.
PostgreSql delimiters enforced.
Default library conventions, easy to override if needed.
Default SQL statement options.
Enhanced SQL builder with a SQL formatter provider, with support for formatting specifiers for table (T), column (C) or table and column (TC).
Support for the MetadataType attribute.
Fixed the INSERT statement in an MsSql table with triggers.
Fixed SKIP and TOP clauses for MsSql and SqLite.
Added bulk update and delete.
2.1.x:
Fixed missing dependency on Dapper.
.NET 4.5 polyfills for string interpolation were removed and a library dependency was added instead.
Async methods added.
Count method added.
Fix for database column name overrides.
Easier entity registration for code-first.
2.0.x:
All the extensions were moved to Dapper.FastCrud namespace to avoid clashes with other extensions.
Configuration was moved to the static class OrmConfiguration.
The T4 template was moved into a different package.
Runtime mappings for code first entities.
Simultaneous multiple mappings per entity type.
Rudimentary SQL builder with alias support.
1.1.x:
Added support for MySql and SqLite.
Entities that have primary keys not auto-generated by the DB are now supported.
Added support for PostgreSql dialect.
1.0.x:
Updated T4 template for database generated fields and composite primary keys.
Better handling of database generated fields.
Added the data annotation assembly as reference on installation.