Skip to content

F# Support, Class Handler, Enhanced Compiler, Many More

Compare
Choose a tag to compare
@mikependon mikependon released this 24 Sep 04:02
· 1141 commits to master since this release
2a3b823

Release Notes

The version 1.12.0 / v1.1.0 (extensions) are one of the biggest release of RepoDB. It contains the various updates (i.e. Features, Capabilities, and Request from the Community).

  • Complete Support to F#
  • Class Handler
  • Enhanced Compiler
  • Anonymous Type / ExpandoObject / IDictionary<string, object>
  • Immutable Classes
  • Table-Based Fluent Calls
  • Complete Exposure of the fields argument
  • Support to .NET CLR Typed Result Execution
  • Support to Table-Valued Parameters (TVP)

Credits

Thank you to our contributors and to all the collaborators.

Contributors

Collaborators

RepoDB (Core) (v1.12.0)

  • Complete support to F# programming language as requested by the F# Community. Thank you to Isaac Abraham and Angel Munoz for being so collaborative.
  • Request: F# - Consider the Anonymous Types in the Query and QueryAll operation #536.
  • Bug: QueryAsync with empty QueryField list throws SQL exception #498.
  • Bug: IPropertyHandler not being called #514
  • Bug: Property mapping fails with Turkish locale #502
  • Bug: Non-query statements are not taking into account SQL Server table hints #533.
  • Bug: Async methods use synchronous calls #589
  • Feature: Introduce the ClassHandler Support #524
  • Feature: Support to Enumerable Scalar Values #538 - NEW
  • Request: Completely expose the fields argument in the BatchQuery, Query, Insert, Merge and Update operations (and all its Batch operations). #523
  • Request: Add caching for ExecuteQuery and ExecuteQuery<TEntity> #522
  • Request: Adds an overloaded method for QueryAll<TEntity> operation that takes the tableName parameter. #521 - BREAKING
  • Request: Add caching for ExecuteQuery and ExecuteQuery<TEntity> #522
  • Request: Add the 'isMoveToNextResult' argument to the QueryMultipleExtractor (Extract and Scalar) methods #591
  • Request: Support the Immutable Entities #465
  • Question: Question on how to properly configure type mapping for FSharp Option types #483
  • Question: Specific Columns in Query<TEntity> #545
  • Enhancement: Use the Identity field if the Primary field is not available during the Query, Delete and Update operations.
  • Refactoring: Enhance the coding in the Core Compiler #479. BREAKING
  • Enhancement: Complete support to the Fluent named-based operation #499.
  • Enhancement: Replaces the usage of IsNullOrEmpty to IsNullOrWhiteSpace.
  • Enhancement: Replaces the usage of ToLower() to ToLowerInvariant().
  • Enhancement: Replaces the usage of string equality to string.Equals(value1, value2, StringComparer.OrdinalIgnoreCase).
  • Enhancement: Added the Async methods in the compiler. #482 #477
  • Enhancement: Add the dynamic ExecuteQuery method in the DbRepository. #517
  • Enhancement: Renamed the whereOrPrimaryKey argument to what to extend the support to both (data entity object, dynamic/object expression, primary key and identity key), to further support the F# community. BREAKING
  • Enhancement: Updated the QueryGroup.Parse() method to be an argument-typed-based method.
  • Enhancement: Refactored and optimized the Parse method of the QueryField and QueryGroup objects.
  • Enhancement: Refactor the Table-Based Calls to return IEnumerable<ExpandoObject> instead of IEnumerable<dynamics>. #540
  • Enhancement: Consider supporting the execution of the TVP in SQL Server. #566
  • Enhancement: Support for returning IDictionary<string, object> instead of ExpandoObject. #537
  • Enhancement: Re-assess if the IsAssignableFrom can be used over the customized IsInterfacedTo. #469
  • Enhancement: Handle the Exception Handling of the Serialization/Deserialization process of the ClassHandler that is connected to a different Data Entity #539
  • Refactoring: Make all the cacheItemExpiration arguments nullable. BREAKING
  • Refactoring: Make the BaseRepository and DbRepository objects CacheItemExpiration property nullable.
  • Refactoring: Make the CacheItem object CacheItemExpiration property nullable.
  • Test: Added the Integration Tests for the NonKeyedTable.
  • Integration Tests: Added more Integration Tests for the DbType Map Attribute (includes SQL Server, PostgreSQL and MySQL).
  • Added the KeyFieldNotFoundException, MissingQualifierFieldsException and the IdentityFieldNotFoundException.
  • Added the <TEntity>(TableName) methods to the BatchQuery operation.
  • Added the <TEntity>(TableName) methods to the Query and QueryAll operations.
  • Added the <TEntity>(TableName) methods to the Delete and DeleteAll operations.
  • Added the <TEntity>(TableName) methods to the Insert and InsertAll operations.
  • Added the <TEntity>(TableName) methods to the Merge and MergeAll operations.
  • Added the <TEntity>(TableName) methods to the Update and UpdateAll operations.
  • Added the <TEntity, TResult> methods to the Average and AverageAll operations.
  • Added the <TEntity, TResult> methods to the Max and MaxAll operations.
  • Added the <TEntity, TResult> methods to the Min and MinAll operations.
  • Added the <TEntity, TResult> methods to the Sum and SumAll operations.
  • Added the execution context provider internal classes for the Insert, Merge, Update, internal class for the InsertAll, MergeAll and UpdateAlloperations.

RepoDb.SqlServer (v1.1.0)

  • Complete support to F# programming language as requested by the F# Community. Thank you to Isaac Abraham and Angel Munoz for being so collaborative.
  • Breaking: Introduced the fields argument to the fetch (i.e.: Query, ExecuteQuery and BatchQuery) and push (i.e.: Insert, Merge and Update) operations.
  • Breaking: Introduced the tableName argument to all entity based operations. This completely resolves the F# anonymous invocations.
  • Breaking: Renamed of argument whereOrPrimaryKey to what.
  • Enhacement: Complete support to the immutable classes and/or types.
  • Refactoring: Refactored the compiler implementations by simplifying the code from Monolithic to Smaller/Shorter/Cleaner code.
  • Feature: Introduced the support to the Class Handler.
  • Test: More coverage of Integration Tests and Unit Tests.
  • Referenced the version RepoDb.Core (v1.12.0).

RepoDb.SqlServer.BulkOperations (v1.1.0)

  • Complete support to F# programming language as requested by the F# Community. Thank you to Isaac Abraham and Angel Munoz for being so collaborative.
  • Breaking: Introduced the fields argument to the fetch (i.e.: Query, ExecuteQuery and BatchQuery) and push (i.e.: Insert, Merge and Update) operations.
  • Breaking: Introduced the tableName argument to all entity based operations. This completely resolves the F# anonymous invocations.
  • Breaking: Renamed of argument whereOrPrimaryKey to what.
  • Enhacement: Complete support to the immutable classes and/or types.
  • Refactoring: Refactored the compiler implementations by simplifying the code from Monolithic to Smaller/Shorter/Cleaner code.
  • Feature: Introduced the support to the Class Handler.
  • Test: More coverage of Integration Tests and Unit Tests.
  • Referenced the version RepoDb.Core (v1.12.0).
  • Referenced the version RepoDb.SqlServer (v1.1.0).

RepoDb.SqLite (v1.1.0)

  • Complete support to F# programming language as requested by the F# Community. Thank you to Isaac Abraham and Angel Munoz for being so collaborative.
  • Bug: Sqlite: Guids not working in where query #593
  • Bug: SqLite: Replace the INSERT OR REPLACE with INSERT/UPDATE statement. #558
  • Bug: Inserting only specific columns does not work on SQLite #568
  • Breaking: Introduced the fields argument to the fetch (i.e.: Query, ExecuteQuery and BatchQuery) and push (i.e.: Insert, Merge and Update) operations.
  • Breaking: Introduced the tableName argument to all entity based operations. This completely resolves the F# anonymous invocations.
  • Breaking: Renamed of argument whereOrPrimaryKey to what.
  • Enhacement: Complete support to the immutable classes and/or types.
  • Refactoring: Refactored the compiler implementations by simplifying the code from Monolithic to Smaller/Shorter/Cleaner code.
  • Feature: Introduced the support to the Class Handler.
  • Test: More coverage of Integration Tests and Unit Tests.
  • Referenced the version RepoDb.Core (v1.12.0).

RepoDb.MySql / RepoDb.MySqlConnector (v1.1.0)

  • Complete support to F# programming language as requested by the F# Community. Thank you to Isaac Abraham and Angel Munoz for being so collaborative.
  • Breaking: Introduced the fields argument to the fetch (i.e.: Query, ExecuteQuery and BatchQuery) and push (i.e.: Insert, Merge and Update) operations.
  • Breaking: Introduced the tableName argument to all entity based operations. This completely resolves the F# anonymous invocations.
  • Breaking: Renamed of argument whereOrPrimaryKey to what.
  • Enhacement: Complete support to the immutable classes and/or types.
  • Refactoring: Refactored the compiler implementations by simplifying the code from Monolithic to Smaller/Shorter/Cleaner code.
  • Feature: Introduced the support to the Class Handler.
  • Test: More coverage of Integration Tests and Unit Tests.
  • Referenced the version RepoDb.Core (v1.12.0).

RepoDb.PostgreSql (v1.1.0)

  • Complete support to F# programming language as requested by the F# Community. Thank you to Isaac Abraham and Angel Munoz for being so collaborative.
  • Breaking: Introduced the fields argument to the fetch (i.e.: Query, ExecuteQuery and BatchQuery) and push (i.e.: Insert, Merge and Update) operations.
  • Breaking: Introduced the tableName argument to all entity based operations. This completely resolves the F# anonymous invocations.
  • Breaking: Renamed of argument whereOrPrimaryKey to what.
  • Enhacement: Complete support to the immutable classes and/or types.
  • Enhancement: PostgreSQL - Add the RESTART IDENTITY in the Truncate operation. #563
  • Refactoring: Refactored the compiler implementations by simplifying the code from Monolithic to Smaller/Shorter/Cleaner code.
  • Feature: Introduced the support to the Class Handler.
  • Test: More coverage of Integration Tests and Unit Tests.
  • Referenced the version RepoDb.Core (v1.12.0).

Closing Note

This release comes with a blog that can be found here.