Skip to content

Release notes for Dapper.FastCrud

MoonStorm edited this page Jun 3, 2024 · 4 revisions

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.