RepoDb v1.12.0 Release Notes

Release Date: 2020-09-24 // over 3 years ago
  • ๐Ÿš€ 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.