F# Support, Class Handler, Enhanced Compiler, Many More
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.