-
Notifications
You must be signed in to change notification settings - Fork 129
Release notes for Dapper.FastCrud
MoonStorm edited this page Jun 3, 2024
·
4 revisions
- 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
andTC
respectively when an alias is provided. - Fixed an issue where calling
OrmConfiguration.ClearEntityRegistrations
was not enough to clear the state between switching dialects viaOrmConfiguration.DefaultDialect
. - Schema tests added for the SQL formatter.
- Tests added to cover schemas for the MsSql, PostgreSql and SQLAnywhere dialects.
- Added support for
DateOnly
andTimeOnly
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.
- Added support for SQL Anywhere
- Added support for 'rowversion' type columns for the SQL Server dialect.
- Dependencies, tests and benchmarks updated.
- 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).
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.