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
- @mertkokusen - for issuing a PR for #502
- @SergerGood - for adding the RepoDb.Benchmarks
Collaborators
- @isaacabraham and @AngelMunoz - for the frequent collaborations in relation to F#
- @Swoorup, @alper-atay, @BieleckiLtd - for actively collaborating
- @KSemenenko, @bcssov, @chaloman, @marcin-brzozowski, @palenshus, @nicko-franco, @asleire, @kampilan, @snalesso, @kbilsted, @rapthi, @Kodestuen, @fenilrathod, @karuakun @dalebrubaker - for filing the Issues/Bugs, Questions, Recommendations, Verification/Validations, etc.
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 thePrimary
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
toIsNullOrWhiteSpace
. - โจ Enhancement: Replaces the usage of
ToLower()
toToLowerInvariant()
. - โจ 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 towhat
to extend the support to both (data entity object, dynamic/object expression, primary key and identity key), to further support theF#
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 ofIEnumerable<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 customizedIsInterfacedTo
. #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 theIdentityFieldNotFoundException
. - โ 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 theF#
anonymous invocations. - ๐ฅ Breaking: Renamed of argument
whereOrPrimaryKey
towhat
. - ๐ 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 theF#
anonymous invocations. - ๐ฅ Breaking: Renamed of argument
whereOrPrimaryKey
towhat
. - ๐ 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
withINSERT/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 theF#
anonymous invocations. - ๐ฅ Breaking: Renamed of argument
whereOrPrimaryKey
towhat
. - ๐ 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 theF#
anonymous invocations. - ๐ฅ Breaking: Renamed of argument
whereOrPrimaryKey
towhat
. - ๐ 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 theF#
anonymous invocations. - ๐ฅ Breaking: Renamed of argument
whereOrPrimaryKey
towhat
. - ๐ 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.