Releases for RepoDb (Core)
Please click here to see the actual Nuget package. Otherwise, please click here to download it.
RepoDb (v1.13.1)
- Feature: Introduce the SkipQuery operation. #377
- Bug: RepoDb.SqlServer v1.13.0 - Memory leak in Microsoft.Data.SqlClient 5.0.1 #1128
- Introduced the
DynamicHandler()
method into the IDbSetting interface.
RepoDb (v1.13.1-alpha1)
- Upgraded the
Microsoft.Data.SqlClient
packagev5.1.0
. - Enabled the
net7.0
TFM.
RepoDb (v1.13.0)
Highlights
- Enhancement: Re-implement the Tracing overall implementations - Addressing the Simplicity and Extensibility #941
Breaking
- Enhancement: Simplified the constructors of the QueryField and DirectionalQueryField classes.
- Enhancement: Simplified the constructors of the extended query field objects FunctionalQueryField, LeftQueryField, RightQueryField, LeftTrimQueryField, RightTrimQueryField, LengthQueryField, LenQueryField, LowerQueryField, UpperQueryField, TrimQueryField classes.
- Enhancement: Removed the Field argument from all the query field objects.
- Enhancement: Removed the
Type
property from the DirectionalQueryField object. - Enhancement: Enable IDbDataParameter as query arguments #1060
Non-Breaking
- Bug: No coercion operator is defined between types
System.TimeSpan
andSystem.Int64
. #1033 - Bug: Type with custom mapping used in an array is not mapped to specific DbType #1053
- Bug: DbRepository’s Truncate operations do not handle transactions #1041
- Bug: Sort Columns are no longer being verified #1049
- Enhancement: Explicit selection of the datatype for query parameters #1052
- Enhancement: Added the DbType as property to both the Parameter and QueryField classes.
- Enhancement: Removed the type filter (of class) in the ExecuteQueryMultiple operation.
- Enhancement: Remove the QueryBuilder on the IStatementBuilder interface methods #1055
- How to use ExecuteQueryMultiple cache? #1044
- Enhancement: Enable the Anonymous Types and Query Objects on QueryMultiple #1062
- Enhancement: Add the
fields
andcacheItemExpiration
as arguments to the QueryMultiple operation #1071 - Enhancement: Enable the TableName invocation in the QueryMultiple operations #1065 Enhancement: Enable the dynamic result from the QueryMultiple operations #1070
- Enhancement: Support the Type level assignment of PropertyValueAttribute #1059
- Enhancement: Removed the
includeMappings
argument from thePropertyInfo.GetPropertyValueAttributes()
, PropertyValueAttributeCache and PropertyValueAttributeResolver methods. - Enhancement: Introduced the PropertyValueAttributeTypeLevelResolver class.
- Enhancement: Obsoleted the PropertyValueAttributeResolver class and introduced the replacement class named PropertyValueAttributePropertyLevelResolver class.
- Request: Insert methods should return the PK regardless of if the PK was generated by the DB or not #1027
- Enhancement: TypeMapper for MSSQL (Udt and Spatial) #1023
- Enhancement: Introduce the
Async
methods to the ICache interface #1080 - Bug: QueryAsync interfering with PK #1046
- Question: How does one trace
Async
methods? #945 - Introduced the
NullToDbNull
method into the Converter class. - Enhancement: Add a PropertyHandlerOptions and ClassHandlerOptions class #1088
- Obsoleted the Converter.ConversionType property.
- Removed the Constant.MaxParametersCount property.
- Enhancement: Introduce the initialization within the library using an GloalConfigOptions class #1087
- Enhancement: Add a switch of which value to return (Identity/Primary) during the push operations (Insert, InsertAll, Merge and MergeAll). #1086
- Enum: writing to db fails, when global-option is automatic or db-field is primary-key #1100
- Enums: error when dbValue doesn’t exist in Enum-Values #1099
- Upgraded the Microsoft.Data.SqlClient package to
v5.0.1
.
RepoDb (v1.13.0-beta1)
- Upgraded the Microsoft.Data.SqlClient package to
v5.0.1
.
RepoDb (v1.13.0-alpha3)
- Enhancement: Add a switch of which value to return (Identity/Primary) during the push operations (Insert, InsertAll, Merge and MergeAll). #1086 - (Updates to both PostgreSQL, MySQL, SQLite (System/Microsoft) extended libraries)
- Enum: writing to db fails, when global-option is automatic or db-field is primary-key #1100
- Enums: error when dbValue doesn’t exist in Enum-Values #1099
RepoDb (v1.13.0-alpha2)
- Introduced the
NullToDbNull
method into the Converter class. - Enhancement: Add a PropertyHandlerOptions and ClassHandlerOptions class #1088
- Obsoleted the Converter.ConversionType property.
- Removed the Constant.MaxParametersCount property.
- Enhancement: Introduce the initialization within the library using an GloalConfigOptions class #1087
- Enhancement: Add a switch of which value to return (Identity/Primary) during the push operations (Insert, InsertAll, Merge and MergeAll). #1086
RepoDb (v1.13.0-alpha1)
Highlights
- Enhancement: Re-implement the Tracing overall implementations - Addressing the Simplicity and Extensibility #941
Breaking
- Enhancement: Simplified the constructors of the QueryField and DirectionalQueryField classes.
- Enhancement: Simplified the constructors of the extended query field objects FunctionalQueryField, LeftQueryField, RightQueryField, LeftTrimQueryField, RightTrimQueryField, LengthQueryField, LenQueryField, LowerQueryField, UpperQueryField, TrimQueryField classes.
- Enhancement: Removed the Field argument from all the query field objects.
- Enhancement: Removed the
Type
property from the DirectionalQueryField object. - Enhancement: Enable IDbDataParameter as query arguments #1060
Non-Breaking
- Bug: No coercion operator is defined between types
System.TimeSpan
andSystem.Int64
. #1033 - Bug: Type with custom mapping used in an array is not mapped to specific DbType #1053
- Bug: DbRepository’s Truncate operations do not handle transactions #1041
- Bug: Sort Columns are no longer being verified #1049
- Enhancement: Explicit selection of the datatype for query parameters #1052
- Enhancement: Added the DbType as property to both the Parameter and QueryField classes.
- Enhancement: Removed the type filter (of class) in the ExecuteQueryMultiple operation.
- Enhancement: Remove the QueryBuilder on the IStatementBuilder interface methods #1055
- How to use ExecuteQueryMultiple cache? #1044
- Enhancement: Enable the Anonymous Types and Query Objects on QueryMultiple #1062
- Enhancement: Add the
fields
andcacheItemExpiration
as arguments to the QueryMultiple operation #1071 - Enhancement: Enable the TableName invocation in the QueryMultiple operations #1065 Enhancement: Enable the dynamic result from the QueryMultiple operations #1070
- Enhancement: Support the Type level assignment of PropertyValueAttribute #1059
- Enhancement: Removed the
includeMappings
argument from thePropertyInfo.GetPropertyValueAttributes()
, PropertyValueAttributeCache and PropertyValueAttributeResolver methods. - Enhancement: Introduced the PropertyValueAttributeTypeLevelResolver class.
- Enhancement: Obsoleted the PropertyValueAttributeResolver class and introduced the replacement class named PropertyValueAttributePropertyLevelResolver class.
- Request: Insert methods should return the PK regardless of if the PK was generated by the DB or not #1027
- Enhancement: TypeMapper for MSSQL (Udt and Spatial) #1023
- Enhancement: Introduce the
Async
methods to the ICache interface #1080 - Bug: QueryAsync interfering with PK #1046
- Question: How does one trace
Async
methods? #945
RepoDb (v.12.10)
- Bug: the DeleteAll
(T entities) method results in System.InvalidOperationException errors [#1011](https://github.com/mikependon/RepoDB/issues/1011) - 实体继承基类的主键以及字段,无法在派生类中体现? #986
- MemoryCache: “Cannot update the item that is not yet expired.” #1017
- Behavioral Change: When calling the MemoryCache.Add method, the existing cached item (if present) information will be updated by the latest and updated one.
- Bug: Dot in schema name #1015
- Deprecated the method
DataEntityExtension.GetSchema(string)
. Use theDataEntityExtension.GetSchema(string, IDbSetting)
instead. - Deprecated the method
DataEntityExtension.GetTableName(string)
. Use theDataEntityExtension.GetTableName(string, IDbSetting)
instead. - Deprecated the method
Type.GetImplementedInterfaces()
(extended method). Use theType.GetInterfaces()
instead. - Bug: PropertyHandler doesn’t seem to work in F# #1021
- Bug: QueryField IN not working with multiple collections with varying sizes #1026
- Enhancement: Use the HashCode.Combine() method in all Hashcode generations. #1031
- Upgraded the
System.Linq.Async
package tov6.1.0
.
RepoDb (v1.12.10-beta4)
- Compiler update to utilize the customized
DbParameterExtension
class to compliment the compiler’s needs for theNpgsqlParameter.NpgsqlDbType.Unknown
. - Complimentary support to the Enum(s) for the
RepoDb.PostgreSql.BulkOperations
package. - Upgraded the
System.Linq.Async
package tov5.1.0
. - Upgraded the
Microsoft.Bcl.AsyncInterfaces
package tov6.0.0
.
RepoDb (v1.12.10-beta3)
- (Additional Fixes) Bug: Exceptions are thrown when using a custom PropertyHandler and a Where Expression to process an Enum value (that has NULL or invalid Enum Id); the Get/Set is never invoked. #991
- Added the
Title
andPackageTags
tags in the Nuget Package (.nuspec references).
RepoDb (v1.12.10-beta2)
- Question: why to order by a field, it needs to be in the select? #963
- Bug: Exceptions are thrown when using a custom PropertyHandler and a Where Expression to process an Enum value (that has NULL or invalid Enum Id); the Get/Set is never invoked. #991
- Supported the
.NET v6.0
.
RepoDb (v1.12.10-beta1)
- Initial support to PostgreSQL bulk operations.
- Code refactoring specifically on the
QueryBuilders
.
RepoDb (v1.12.9)
- Enhancement: Make the value argument of the functional QueryField objects to
System.Object
. #926 - Question: How is inheritance working in RepoDB? #955
RepoDb (v1.12.8)
- NETSTANDARD2.0: Added the
Microsoft.Bcl.AsyncInterfaces v5.0.0
package. - NETSTANDARD2.0: Added the
Microsoft.Bcl.HashCode v1.1.1
package. - Added the
System.Linq.Async v5.0.0
package. - Added the
net5.0
as part of the target frameworks. - Bug: Dynamic insertion via
Dictionary<string, object>
is failing #791. - Bug:
IsDictionaryStringObject()
does not work in F# #789. - Bug: An identify field parameter issue is being thrown when invoking the MergeAll operation dynamically #849.
- Bug: A SQL syntax issue is being thrown if the BulkMerge is called with multiple qualifiers #850.
- Bug: Output parameters of type varchar gives
Size
exception #836. - Bug: Calls to any operation throws an object
NullReferenceException
if not properly initialized. #861. - Bug: Different lambdas in QueryAsync generate the same SQL expression (cache problem) #782.
- (Rebuilt Only) Bug: OrderField ignores MapAttribute #769
- Bug: OrderField ignores MapAttribute #769
- Bug: Querying by string field fails in VB .Net #767
- Bug: Insert exception since 1.1.3 with mysql… #765
- Enhancement: Added the
Size
property into the DirectionalQueryField object. - Enhancement: Exposed the
Type
property of the DirectionalQueryField object. - Enhancement: Added the
NULL
comparer as part of the qualifiers on the MergeAll, UpdateAll, BulkMerge and BulkUpdate operations. - Enhancement: Made the QueryGroup.GetString() method virtual.
- Enhancement: Added the QueryField.GetString() method (as virtual).
- Enhancement: Make the DbRepository.CreateConnection() method virtual. #856
- Enhancement: Made the
CreateConnection()
method of the BaseRepository class virtual. - Enhancement: Enhancement: Add an additional property on the DbField class that handles the DB Provider. #890
- Enhancement: Added the PropertyValueAttribute attribute class.
- Enhancement: Create a base class for the Type Map attributes (NpgsqlTypeMapAttribute, MySqlTypeMapAttribute, MicrosoftSqlServerTypeMapAttribute and SystemSqlServerTypeMapAttribute) #873.
- Enhancement: Add the attribute-based parameter setters for the DbParameter object. #886
- Enhancement: Add a mapper for PropertyValueAttribute #887
- Enhancement: Added the DbTypeAttribute attribute.
- Enhancement: Added the DirectionAttribute attribute.
- Enhancement: Added the IsNullableAttribute attribute.
- Enhancement: Added the NameAttribute attribute.
- Enhancement: Added the PrecisionAttribute attribute.
- Enhancement: Added the ScaleAttribute attribute.
- Enhancement: Added the SizeAttribute attribute.
- Enhancement: Added the PropertyValueAttributeMapper class.
- Enhancement: Added the PropertyValueAttributeCache class.
- Enhancement: Added the PropertyValueAttributeResolver class.
- Enhancement: Added the
PropertyValueAttributes()
method on the FluentMapper class. - Enhancement: Introduce the formatters for the QueryField class 899)
RepoDb (v1.12.8-beta5)
- NETSTANDARD2.0: Added the
Microsoft.Bcl.AsyncInterfaces v5.0.0
package. - NETSTANDARD2.0: Added the
Microsoft.Bcl.HashCode v1.1.1
package. - Added the
System.Linq.Async v5.0.0
package. - Added the
net5.0
as part of the target frameworks. - Bug: Dynamic insertion via
Dictionary<string, object>
is failing #791. - Bug:
IsDictionaryStringObject()
does not work in F# #789. - Bug: An identify field parameter issue is being thrown when invoking the MergeAll operation dynamically #849.
- Bug: A SQL syntax issue is being thrown if the BulkMerge is called with multiple qualifiers #850.
- Bug: Output parameters of type varchar gives
Size
exception #836. - Bug: Calls to any operation throws an object
NullReferenceException
if not properly initialized. #861. - Enhancement: Added the
Size
property into the DirectionalQueryField object. - Enhancement: Exposed the
Type
property of the DirectionalQueryField object. - Enhancement: Added the
NULL
comparer as part of the qualifiers on the MergeAll, UpdateAll, BulkMerge and BulkUpdate operations. - Enhancement: Made the QueryGroup.GetString() method virtual.
- Enhancement: Added the QueryField.GetString() method (as virtual).
- Enhancement: Make the DbRepository.CreateConnection() method virtual. #856
- Enhancement: Made the
CreateConnection()
method of the BaseRepository class virtual. - Enhancement: Enhancement: Add an additional property on the DbField class that handles the DB Provider. #890
- Enhancement: Added the PropertyValueAttribute attribute class.
- Enhancement: Create a base class for the Type Map attributes (NpgsqlTypeMapAttribute, MySqlTypeMapAttribute, MicrosoftSqlServerTypeMapAttribute and SystemSqlServerTypeMapAttribute) #873.
- Enhancement: Add the attribute-based parameter setters for the DbParameter object. #886
- Enhancement: Added the DbTypeAttribute attribute.
- Enhancement: Added the DirectionAttribute attribute.
- Enhancement: Added the IsNullableAttribute attribute.
- Enhancement: Added the NameAttribute attribute.
- Enhancement: Added the PrecisionAttribute attribute.
- Enhancement: Added the ScaleAttribute attribute.
- Enhancement: Added the SizeAttribute attribute.
- Enhancement: Added the PropertyValueAttributeMapper class.
- Enhancement: Added the PropertyValueAttributeCache class.
- Enhancement: Added the PropertyValueAttributeResolver class.
- Enhancement: Added the
PropertyValueAttributes()
method on the FluentMapper class. - Enhancement: Introduce the formatters for the QueryField class 899)
RepoDb (v1.12.8-beta4)
- Bug: Different lambdas in QueryAsync generate the same SQL expression (cache problem) #782.
RepoDb (v1.12.8-beta3)
- (Rebuilt Only) Bug: OrderField ignores MapAttribute #769
RepoDb (v1.12.8-beta2)
- Bug: OrderField ignores MapAttribute #769
- Bug: Querying by string field fails in VB .Net #767
RepoDb (v1.12.8-beta1)
RepoDb (v1.12.7)
- Enhancement: Add a
Reset()
method into the Parameter object. #709 - Enhancement: Add a method DbParameter into the QueryField object. #711
- Enhancement: Revisits the Immutable Classes Instantiation #753
- Bug: Extract function throws exception when using ExecuteQueryMultiple #761
- Bug: RepoDb.SqlServer Enum picking up 2 types when upgraded from 1.1.1 -> 1.1.2 #736
- Bug: null reference during fetch #748
RepoDb (v1.12.6)
- Feature: Support the Output Parameters #686 - NEW
- Enhancement: Add the
__RepoDb_OrderColumn
at the Batch Operations (InsertAll, MergeAll) #703 - Enhancement: Add a
Reset()
method into the Parameter object. #709 - Enhancement: Add the methods named
GetName()
andGetValue()
in the QueryField object. #707 - Enhancement: Add a method DbParameter into the QueryField object. #711
RepoDb (v1.12.5)
Breaking
- Adhoc: Remove the Initialize method from the DataEntityDataReader. #673
Non-Breaking
- Enhancement: Add the dynamic ExecuteQueryMultiple method in the DbRepository #630
- Possible bug - Enum with Flag attribute is not correctly handled #624
- [Core] Support ExpandoObject in Insert via
TableName
. #234 - [Core] Support ExpandoObject in Merge via
TableName
. #238 - [Core] Support ExpandoObject in Update via
TableName
. #236 - [Core] Support ExpandoObject in InsertAll via
TableName
. #235 - [Core] Support ExpandoObject in MergeAll via
TableName
. #239 - [Core] Support ExpandoObject in UpdateAll via
TableName
. #237 - Introduce the support of Dynamic and ExpandoObject in BulkInsert. #243
- Enhancement: Support ExpandoObject in BulkInsert #610
- Enhancement: Support ExpandoObject in BulkMerge #611
- Enhancement: Support ExpandoObject in BulkUpdate #612
- Enhancement: Support ExpandoObject in BulkDelete #613
- Bug: Exception is being thrown for the Type level PropertyHandler for Dynamic Insertion #628.
- Added a validation to ensure the type of the
TPropertyHandler
has implemented the IPropertyHandler interface when calling theAdd()
method of the PropertyHandlerCache object. - Request: Do not crash if on empty enumerable on bulk operation #635.
- Request: Introduce optional caching to ExecuteScalar methods. #648
- Enhancement: Add the non-parameterized Truncate operation. #652
- Bug: Query failed when field mapping used on FSharp records. #662
- Bug: FluentMapper is not working with Abstract Properties #666
- Question: IPropertyHandler for
Dictionary<string, string>
#647 - Upgraded the Microsoft.Data.SqlClient to
v2.1.0
. - Upgraded the
System.ComponentModel.Annotations
tov5.0.0
. - Fixed the related issues found at model-based operation ExecuteQuery (almost related to #666)
RepoDb (v1.12.5-beta6)
- Fixed the related issues found at model-based operation ExecuteQuery (almost related to #666)
RepoDb (v1.12.5-beta5)
Breaking
- Adhoc: Remove the Initialize method from the DataEntityDataReader. #673
Non-Breaking
- Bug: Query failed when field mapping used on FSharp records. #662
- Bug: FluentMapper is not working with Abstract Properties #666
- Question: IPropertyHandler for
Dictionary<string, string>
#647 - Upgraded the Microsoft.Data.SqlClient to
v2.1.0
. - Upgraded the
System.ComponentModel.Annotations
tov5.0.0
.
RepoDb (v1.12.5-beta4)
- Request: Introduce optional caching to ExecuteScalar methods. #648
- Enhancement: Add the non-parameterized Truncate operation. #652
RepoDb (v1.12.5-beta3)
- Request: Do not crash if on empty enumerable on bulk operation #635.
RepoDb (v1.12.5-beta2)
- Bug: Exception is being thrown for the Type level PropertyHandler for Dynamic Insertion #628.
- Added a validation to ensure the type of the
TPropertyHandler
has implemented the IPropertyHandler interface when calling theAdd()
method of the PropertyHandlerCache object.
RepoDb (v1.12.5-beta1)
- Enhancement: Add the dynamic ExecuteQueryMultiple method in the DbRepository #630
- Possible bug - Enum with Flag attribute is not correctly handled #624
- [Core] Support ExpandoObject in Insert via
TableName
. #234 - [Core] Support ExpandoObject in Merge via
TableName
. #238 - [Core] Support ExpandoObject in Update via
TableName
. #236 - [Core] Support ExpandoObject in InsertAll via
TableName
. #235 - [Core] Support ExpandoObject in MergeAll via
TableName
. #239 - [Core] Support ExpandoObject in UpdateAll via
TableName
. #237 - Introduce the support of Dynamic and ExpandoObject in BulkInsert. #243
- Enhancement: Support ExpandoObject in BulkInsert #610
- Enhancement: Support ExpandoObject in BulkMerge #611
- Enhancement: Support ExpandoObject in BulkUpdate #612
- Enhancement: Support ExpandoObject in BulkDelete #613
RepoDb (v1.12.4)
- CancellationToken support? #343
RepoDb (v1.12.3)
- Bug: Behavior change from previous versions prior v1.12.0 #602
- Bug: Async fetch operations are not using the
DbDataReader.ReadAsync
method (in v1.12.0 to v1.12.2) #601
RepoDb (v1.12.2)
- Bug: A
NullReferenceException
Is Thrown for NULL Query Expression #600
RepoDb (v1.12.1)
- Enhancement: New Compiler Possible Collision Problem - Refactor the DbDataReader GetHashCode() Generator #597
- Bug: Unable to share POCOs between different database providers (Sqlite and Postgres) [#595](https://github.com/mikependon/RepoDb/issues/595]
RepoDb (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. - 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. - Added the
<TEntity, TResult>
methods to the Max and MaxAll. - Added the
<TEntity, TResult>
methods to the Min and MinAll. - Added the
<TEntity, TResult>
methods to the Sum and SumAll. - Added the execution context provider internal classes for the Insert, Merge, Update, internal class for the InsertAll, MergeAll and UpdateAlloperations.
RepoDb (v1.12.0-beta4)
- Enhancement: Consider supporting the execution of the TVP in SQL Server. #566
- Integration Tests: Added more Integration Tests for the DbType Map Attribute (includes SQL Server, PostgreSQL and MySQL).
RepoDb (v1.12.0-beta3)
- Enhancement: Refactor the Table-Based Calls to return
IEnumerable<ExpandoObject>
instead ofIEnumerable<dynamics>
. #540 - 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
- Feature: Support to Enumerable Scalar Values #538 - NEW
RepoDb (v1.12.0-beta2)
- 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. - Bug: Non-query statements are not taking into account SQL Server table hints #533.
- Request: F# - Consider the Anonymous Types in the Query and QueryAll operation #536.
- Question: Specific Columns in
Query<TEntity>
#545
RepoDb (v1.12.0-beta1)
- 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: QueryAsync with empty QueryField list throws SQL exception #498.
- Bug: IPropertyHandler not being called #514
- Bug: Property mapping fails with Turkish locale #502
- Feature: Introduce the ClassHandler Support #524
- 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: Support the Immutable Entities #465
- Question: Question on how to properly configure type mapping for FSharp Option types #483
- 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 - 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
. - 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. - 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. - Added the
<TEntity, TResult>
methods to the Max and MaxAll. - Added the
<TEntity, TResult>
methods to the Min and MinAll. - Added the
<TEntity, TResult>
methods to the Sum and SumAll. - Added the execution context provider internal classes for the Insert, Merge, Update, internal class for the InsertAll, MergeAll and UpdateAlloperations.
RepoDb (v1.11.6)
- Code optimizations and XML comments refactoring.
- Bug:
NullReferenceException
occurs when InsertAllAsync is executed on Connection that belongs toTransactionScope
. #490 - Bug: Typed
UpdateAsync
fails for composite key table #493 - Bug: RepoDB does not seem to work for SQL Server tables with dot in the name #492
- Enhancement: Remove the
SchemaSeparator
property from theIDbSetting
interface #475 - Enhancement: Using async
DbFieldCache
#481 - Enhancement: Add a
SessionId
property in the TraceLog class. #484 - Enhancement: Refactor the usage of
Count()
andElementAt()
. - Request: Enable the Enumerable when calling the operations with
IN
operation. #495 - Obsolete: Completely removed the
PropertyTypeHandlerMapper
class. - Obsolete: Completely removed the
TypeMapper.Map()
method. - Obsolete: Completely removed the
TypeMapper.Unmap()
method. - Obsolete: Completely removed the
TypeMapper.ConversionType
property. - Added some micro optimizations #476
- Added a
DataEntityReader.Connection
property. - Added a
DataEntityReader.Transaction
property. - Added a
DataEntityReader.Initialize
method - Added a
DataEntityReader.InitializeAsync()
method.
RepoDb (v1.11.5)
- Fixed the problem when installing the library in .NET Framework
4.7.x
. - Restored the referenced
System.ComponentModel.Annotations
package tov4.7.0
.
RepoDb (v1.11.4)
- Bug: Table schema is ignored for the identical table names #456
- Bug: Regression Issue #457
- Bug: Table Attribute Potential Bug #464
- Bug?: SqlException: Incorrect syntax near ‘)’ #463
- Updated the XML documentations of the
cache
argument for both Query and QueryAll operations.
RepoDb (v1.11.4-beta3)
- Bug: Table schema is ignored for the identical table names #456
- Bug: Regression Issue #457
- Bug: Table Attribute Potential Bug #464
- Bug?: SqlException: Incorrect syntax near ‘)’ #463
- Updated the XML documentations of the
cache
argument for both Query and QueryAll operations.
RepoDb (v1.11.4-beta2)
- Community Request: Additional fix for #457
RepoDb (v1.11.4-beta1)
- Bug: Regression Issue #457
RepoDb (v1.11.3)
- Community Request: Enhancement: Enable Field class to Parse the Expression for Multiple Properties #453
- Enhancement: Set the return type
Field.Parse<T>()
toIEnumerable<Field>
(instead of Field). - Added more Unit Tests on Field class parsing method.
- Removed the
BeforeBulkInsert
andAfterBulkInsert
from the ITrace interface. - Made the CancellableTraceLog class non-sealed, and also, exposed the constructor.
- Added an overload method for the Merge, MergeAll and UpdateAll operations that accepts the
expression
for thequalifiers
argument.
RepoDb (v1.11.2)
- Bug: [SQL Server 2019] RepoDB truncates strings of “Text” types #444
- Request: [SQL Server] Provide better exception message when table mapping is wrong #443
RepoDb (v1.11.1)
- Bug: The property handler mapping via FluentMapper or PropertyHandlerMapper is not being triggered. #438
- Requests: Support for Table attribute #360
- Optimization: Transfer the logic of ClassProperty into various mappers.
- Optimization: Added an
IResolver
interface that does not require aninput
argument. - Bug: The property handler mapping via FluentMapper or PropertyHandlerMapper is not being triggered. #438
- Bug: No coercion operator is defined between types
System.String
andSystem.Guid
. #437 - Added an extensive Integration Tests for Property Handler Implicit Mapping.
- Added an extensive Unit and Integration Tests for
Key
,Column
and Table attributes support. #435 - Added more Unit Tests for
Key/Primary
andTable/Column/Map
collisions. #435 - Added the
GetTypeMapAttribute()
,GetPropertyHandler()
,GetPropertyHandlerAttribute()
methods in the ClassProperty class. - Added the
PrimaryResolver
to resolve the primary ClassProperty of the data entity type. - Added the
IdentityResolver
to resolve the identity ClassProperty of the data entity type. - Added the
ClassMappedNameResolver
to resolve the database object name mapping of the data entity type. - Added the
PropertyMappedNameResolver
to resolve the cached column name mappings of the property. - Added both the
TypeMapPropertyLevelResolver
andTypeMapTypeLevelResolver
classes to resolve the equivalent DbType object of both the property and .NET CLR type. - Added both the
PropertyHandlerPropertyLevelResolver
andPropertyHandlerTypeLevelResolver
classes to resolve the equivalent property handler of both the property and .NET CLR type. - Added the
entityType
argument in theDbCommandExtensions.CreateParameters()
method.
RepoDb (v1.11.1-beta3)
- Added the
entityType
argument in theDbCommandExtensions.CreateParameters()
method.
RepoDb (v1.11.1-beta2)
- Requests: Support for Table attribute #360
- Bug: The property handler mapping via FluentMapper or PropertyHandlerMapper is not being triggered. #438
- Bug: No coercion operator is defined between types
System.String
andSystem.Guid
. #437 - Added an extensive Unit and Integration Tests for
Key
,Column
and Table attributes support. #435 - Added more Unit Tests for
Key/Primary
andTable/Column/Map
collisions. #435 - Added the
GetTypeMapAttribute()
,GetPropertyHandler()
,GetPropertyHandlerAttribute()
methods in the ClassProperty class. - Optimization: Transfer the logic of ClassProperty into various mappers.
- Optimization: Added an
IResolver
interface that does not require aninput
argument. - Added the
PrimaryResolver
to resolve the primary ClassProperty of the data entity type. - Added the
IdentityResolver
to resolve the identity ClassProperty of the data entity type. - Added the
ClassMappedNameResolver
to resolve the database object name mapping of the data entity type. - Added the
PropertyMappedNameResolver
to resolve the cached column name mappings of the property. - Added both the
TypeMapPropertyLevelResolver
andTypeMapTypeLevelResolver
classes to resolve the equivalent DbType object of both the property and .NET CLR type. - Added both the
PropertyHandlerPropertyLevelResolver
andPropertyHandlerTypeLevelResolver
classes to resolve the equivalent property handler of both the property and .NET CLR type.
RepoDb (v1.11.1-beta1)
- Bug: The property handler mapping via FluentMapper or PropertyHandlerMapper is not being triggered. #438
- Added an extensive Integration Tests for Property Handler Implicit Mapping.
RepoDb (v1.11.0)
- Enhancement: Use lambda to define property handlers within DTO constructor. #421
- Enhancement: Consider Mapping class #415
- Request: Allow custom implementation without attribute #399
- Question: ColumnName Resolver #387
- Added the FluentMapper, EntityMapFluentDefinition and TypeMapFluentDefinition.
- Added the expression-based invocation in the
Add()
,Get()
andRemove()
methods of the DbHelperMapper, DbSettingMapper and StatementBuilderMapper classes. - Refactor the
Parse()
method of theOrderField
and Field classes. - Refactor the
GetProperty()
method of theExpressionExtension
class to solve the problem in the mappers. - Added the PropertyHandlerCache class.
- Added the methods
Add()
,Remove()
andGet()
at thePropertyHandlerMapper
class to cater the property level mapping. - Added a class named PropertyHandlerMapper as a replacement of
PropertyTypeHandlerMapper
class. - Added more Integration Tests on the implicit mappings feature.
- Added Unit and Integration Tests for the fluent mappings.
- Added the
ObseleteAttribute
attribute at thePropertyTypeHandlerMapper
class. - Removed the
throwException
arguments in theRemove()
method of the DbHelperMapper, DbSettingMapper and StatementBuilderMapper classes. - Removed the return value of the
Remove()
method of the DbHelperMapper, DbSettingMapper and StatementBuilderMapper. - Rename all the mappers
Flush()
method intoClear()
.
RepoDb (v1.11.0-beta4)
- Refactor: Renamed the argument
objectName
todatabaseObjectName
of ClassMapper class. - Added: Added the method
Get()
viapropertyName
, Field and Linq expression at PropertyCache class. - Refactor: Hide the method
Get()
via ClassProperty at ClassExpression class. - Removed: Removed the method
Get()
via DbField at ClassExpression class.
All packages are affected:
- Bug: (Direct Reports) Fixed the issue at
DeleteAll()
via primary keys if the items is beyond2100
. - Performance: Reverted the value of
Constant.DefaultBatchOperationSize
into10
.
RepoDb (v1.11.0-beta3)
- Issue in the PrimaryMapper and IdentityMapper for the interface property collision reported by the user in RepoDB v1.11.0-beta2.
- Removed the exposure of the
PropertyInfo
and ClassProperty in PropertyHandlerCache, TypeMapCache, PropertyHandlerMapper and TypeMapper classes. - Removed the
Add()
,Get
,Remove()
methods of the PropertyMapper with bothPropertyInfo
and ClassProperty arguments.
RepoDb (v1.11.0-beta2)
- Removed the return value of the
Remove()
method of the DbHelperMapper, DbSettingMapper and StatementBuilderMapper. - Added the expression-based invocation in the
Add()
,Get()
andRemove()
methods of the DbHelperMapper, DbSettingMapper and StatementBuilderMapper classes. - Removed the
throwException
arguments in theRemove()
method of the DbHelperMapper, DbSettingMapper and StatementBuilderMapper classes. - Refactor the
Parse()
method of theOrderField
and Field classes. - Refactor the
GetProperty()
method of theExpressionExtension
class to solve the problem in the mappers. - Added more Integration Tests on the implicit mappings feature.
RepoDb (v1.11.0-beta1)
- Added the PropertyHandlerCache class.
- Added the methods
Add()
,Remove()
andGet()
at thePropertyHandlerMapper
class to cater the property level mapping. - Added a class named PropertyHandlerMapper as a replacement of PropertyHandlerMapper class.
- Added the
ObseleteAttribute
attribute at the PropertyHandlerMapper class. - Rename all the mappers
Flush()
method intoClear()
.
RepoDb (v1.11.0-alpha1):
- Added the ClassMapper, PropertyMapper, PrimaryMapper, IdentityMapper and TypeMapCache classes.
- Added the
Add<T>
,Get<T>
andRemove<T>
methods in the TypeMapper class. - Made the
Map
method of the TypeMapper class obsolete. - Made the
Unmap
method of the TypeMapper class obsolete. - Added the
PropertyNotFoundException
exception class. - Added a method named
GenerateCustomizedHashCode
in thePropertyExtension
class. - Added the Converter class to handle the TypeMapper.Conversion property.
- Removed the internal class named
ObjectConverter
. All methods has been placed to a newly created class named Converter. - Made the
Get(Type)
method of [ClassMappedNameCache](/cache/classmappednamecache] class exposed aspublic
. - Added more thorough Unit Tests for
Class
,Property
,Primary
,Identity
andType
mappings (both Cachers and Mappers).
RepoDb (v1.10.11):
- Implemented the IExpirable into CacheItem.
- Added a
TEntity
generic type in the CacheItem properties. - Added the IExpirable interface.
- Added the CacheItem.CacheItemExpiration property.
- Added the
ConverterNotFoundException
class. - At the CancellableTraceLog.Cancel() method, the
throwException
argument has been defaulted thetrue
. - Enhancement: Ensure that PropertyHandler(s) must ignore the TypeMapper automatic conversion and also
Enum
handlers. #412 - Enhancement: Make the Constant.DefaultBatchOperationSize property value to
10
. Targeting the bulk operations (i.e.: BulkInsert, BulkDelete, BulkMerge and BulkUpdate) default batch-size. - Bug: UnaryExpression: Add support for
&&
and||
operators in the expressions 398 - Bug: Enum Bug #400
- Bug: Enum Bug on Null value on Insert. #401
- Bug: PropertyHandler for Nullable Enum #402
- Bug: Calling to DeleteAll operation with the list of
PrimaryKeys
andTransaction
object is failing. Reported by Christian Franck. #404.
RepoDb (v1.10.11-beta3):
- Implemented the IExpirable into CacheItem.
- Added a
TEntity
generic type in the CacheItem properties. - Added the IExpirable interface.
- Added the CacheItem.CacheItemExpiration property.
- Bug: Enum Bug on Null value on Insert. #401
- Added the
ConverterNotFoundException
class. - Enhancement: Ensure that PropertyHandler(s) must ignore the TypeMapper automatic conversion and also
Enum
handlers. #412 - Enhancement: Make the Constant.DefaultBatchOperationSize property value to
10
. Targeting the bulk operations (i.e.: BulkInsert, BulkDelete, BulkMerge and BulkUpdate) default batch-size.
RepoDb (v1.10.11-beta2):
- Bug: Enum Bug #400
- Bug; PropertyHandler for Nullable Enum #402
RepoDb (v1.10.11-beta1):
- At the CancellableTraceLog.Cancel() method, the
throwException
argument has been defaulted thetrue
. - Bug: Calling to DeleteAll operation with the list of
PrimaryKeys
andTransaction
object is failing. Reported by Christian Franck. #404.
RepoDb (v1.10.10)
- Features: Full support to Bulk Operations (BulkDelete, BulkInsert, BulkMerge and BulkUpdate).
- Enhancement:
AsFieldsAsAliasFields
- added left and right aliases. - Enhancement: XML Documentation updates for the SQL statement Builders.
- Enhancement: Add a
Type
extended method namedIsNullable
. - Bug: Solve the intermittent
NullReferenceException
when calling the Batch Operations (i.e.: InsertAll, MergeAll, UpdateAll). #392 - Bug: The property handlers mapped via
PropertyHandlerMapper
is failing if bothNULLABLE
andNON-NULLABLE
property types are present in the class. #394
RepoDb (v1.10.10-beta1)
- Full support to Bulk Operations (BulkDelete, BulkInsert, BulkMerge and BulkUpdate).
AsFieldsAsAliasFields
- added left and right aliases.- XML Documentation updates for the SQL statement Builders.
RepoDb (v1.10.9)
- Enhancement: Compiler changes for
ClassProperty.GetDbType()
calls. - Feature: Support for
SqlServer.SqlDbType
(Microsoft and System),PostgreSql.NpgsqlDbType
#390 andMySql.MySqlDbType
.
RepoDb (v1.10.8)
- Bug:
InvalidCastException
ConvertingEnums
toStrings
in Postgres #388
RepoDb (v1.10.7)
- Enhancement: Separate the
Bulk
operations into a separate Solution and Nuget Package. #385 - Enhancement: Separete all
SqlServer
related stuffs to a different library namedRepoDb.SqlServer
. #282 - Enhancement: Remove the support to
System.Data.SqlClient
in theRepoDb.Core
. #386
RepoDb (v1.10.6)
- Added the class property as an argument context in the
Get()
andSet()
method. - Exposed the underlying
DbRepository
property at theBaseRepository
object.
RepoDb (v1.10.5)
Highlights
- Support: Initiate the support to Microsoft.Data.SqlClient namespace. #374
- Feature: Support
PropertyHandlerAttribute
as requested. #367 - Feature: Re-enabled the BulkInsert for
DataTable
. - Feature: Support deleting an array of entity objects or primary keys via DeleteAll. #353
Others
- Support: Change the target type to .NetStandard 2.0.
- Support: Initiate the support to Microsoft.Data.SqlClient namespace. #374
- Enhancement: Support to Microsoft.Data.SqlClient #359
- NTH: Add a table hints in Merge and MergeAll. #370
- NTH: Add a table hints in Update and UpdateAll. #371
- NTH: Add a table hints in Delete and DeleteAll. #376
- NTH: Add a table hints in Insert and InsertAll. #379
RepoDb (v1.10.4)
- Initial support of RepoDb.PostgreSql.
- Added
IsPreparable
Property forIDbSetting
. - Removed the
basedOnFields
logic when extracting the DbDataReader. - InsertAll: Parsed the first entity property fields if the
fields
argument is not defined. - Enhancement: Introduce the
BaseDbSetting
class to cater a uniformHashCode
generator. #369 - Adhoc: Sealed and exposed the
DbSettings
,DbHelpers
and theDbStatementBuilders
classes. - Enhancement: Introduced the
DbConvertFieldResolver
as the base converter field.
RepoDb (v1.10.4-beta2)
- Initial support of RepoDb.PostgreSql.
RepoDb (v1.10.4-beta1)
- Error: Invalid expression. The property
Id
is not defined on a target type #364 - MySql Support.
RepoDb (v1.10.3)
- Revert the recurrent calls to
DbFieldCache
.Get() in theExecuteQuery
method.
RepoDb (v1.10.2)
- Bug (Community Request): The primary field is not found exception when primary key column name is different from
Primary
attribute property name is different whileConnection.Update
is called. #356 - Bug: Set the return value of
Max
andMin
operations to object. #357 - Performance: Refactor to remove the recurrent calls to
DbFieldCache
.Get() in theExecuteQuery
method.
RepoDb (v1.10.2-alpha2)
- Bug: Set the return value of
Max
andMin
operations to object. #357 - Refactor to remove the recurrent calls to
DbFieldCache
.Get() in theExecuteQuery
method.
RepoDb (v1.10.2-alpha1)
- Bug (Community Request): The primary field is not found exception when primary key column name is different from
Primary
attribute property name is different whileConnection.Update
is called. #356
RepoDb (v1.10.1)
- Removed the NetFramework Specific Library at Nuget.
- Supported the RepoDb.MySql extended library.
RepoDb (v1.10.0)
- Breaking changes from the previous versions.
- This release contains major code refactoring for performance optimization purposes.
- Feature: Introduced the support
IDbSetting
. Used for other data providers extensibility complete support. - Feature: Introduced
DbSettingMapper
class. - Feature: Supported
Upsert
operations (abstracted with Merge operation) for the data providers that does not support multi-statement execution andMERGE
command. - Feature: Added support to
Average
andAverageAll
(with itsAsync
version). - Feature: Added support to
Exists
(with itsAsync
version). - Feature: Added support to
Max
andMaxAll
(with itsAsync
version). - Feature: Added support to
Min
andMinAll
(with itsAsync
version). - Feature: Added support to
Sum
andSumAll
(with itsAsync
version). - Feature: Create an extended method
DbConnection.GetLastInsertedIdentity()
for other data providers extensibility complete support. - Enhancement: Introduced
[QueryGroup](/class/querygroup).IsForUpdate()
method. - Enhancement: Splitted the
SqlServerStatementBuilder
to aBaseStatementBuilder
. Further supports for other data providers base statement building. - Enhancement: Supported
IResolver
for 7 generic types. - Refactoring: Renamed the
SqlDbHelper
toSqlServerDbHelper
. - Refactoring: Renamed the
SqlStatementBuilder
toSqlServerStatementBuilder
. - Test: Added an extensive Unit/Integration Tests for
Average
,Exists
,Max
,Min
,Sum
(and all itsAsync
operations). - Test: Added an extensive Unit Tests for
[QueryGroup](/class/querygroup).GetString()
andQueryField.GetString()
. - Bug: Where expression using IEnumerable`s contains throws error when using inherited class property #301
RepoDb (v1.9.11)
- Stable release.
- Enhancement: Check current transaction (System.Transactions.Transaction.Current) before applying an explicit System.Data.
IDbTransaction
object. #279 - Enhancement: Table Hints is not passing properly in the
BatchQuery
. #283
RepoDb (v1.9.10)
- Stable release.
- v1.9.9 changes + more Integration Tests for
DbConnection
.
RepoDb (v1.9.9)
- Bug: SqlException: Login failed for user
xxx
- Bug: Calling InsertAll with
MapAttribute
leads toSystem.NullReferenceException
: Object reference not set to an instance of an object. #274 - Bug:
SqlDbHelper.GetFields
is failing if the transaction object is present. #278 - Enhancement: Remove database streaming when extracting table schema.
- Enhancement: Add
AsFields()
extended methods for theIEnumerable
ofDbField
objects #273 - Enhancement: Add
DbFieldCache.GetAsync
method. #275 - Enhancement: Add
DataEntityDataReader
into BulkInsert that accepts TableName and Entities #271 - Enhancement: Add
AsFields()
extended methods for theIEnumerable
ofDbField
objects. - To Consider: Enable BulkInsert with System.
DataTable
#277 - Test: Add IntegrationTests on BulkInsert that accepts DataEntities and TableName.
- Refactoring: Refactor the code snippets for
DbFieldCache
to acceptIDbTransaction
objects. These affected too many chain of calls. - Refactoring: Removed the
ToLower()
and replaced byStringComparer.OrdinalIgnoreCase
.
RepoDb (v1.9.9-beta5)
- Bug:
SqlDbHelper.GetFields
is failing if the transaction object is present. #278 - Refactoring: Refactor the code snippets for
DbFieldCache
to acceptIDbTransaction
objects. These affected too many chain of calls.
RepoDb (v1.9.9-beta4)
- To Consider: Enable BulkInsert with System.
DataTable
#277 - v1.9.9 release candidate
RepoDb (v1.9.9-beta3)
- Enhancement: Add
DbFieldCache.GetAsync
method. #275 - Enhancement: Add
DataEntityDataReader
into BulkInsert that accepts TableName and Entities #271 - Enhancement: Add
AsFields()
extended methods for theIEnumerable<DbField>
- Test: Add IntegrationTests on BulkInsert that accepts DataEntities and TableName.
RepoDb (v1.9.9-beta2)
- Enhancement: Add
AsFields()
extended methods for theIEnumerable<DbField>
#273 - Bug: Calling InsertAll with
MapAttribute
leads toSystem.NullReferenceException
: Object reference not set to an instance of an object. #274
RepoDb (v1.9.9-beta1)
- Bug: SqlException: Login failed for user
xxx
- Enhancement: Remove database streaming when extracting table schema.
RepoDb (v1.9.8)
- Stable release of RepoDb.
- Enum Supports.
- Unorganized Table/Column Supports.
- Bug Fixes.
RepoDb (v1.9.8-beta4)
- Title: A hybrid ORM library for .NET.
- Fix: Fixed the issue in the
[QueryGroup](/class/querygroup).Fix()
method if the depth of the Tree is at Level 4.
RepoDb (v1.9.8-beta3)
- Fixed: Fixed the issue when using the Mapped/Quoted/Unorganized property in
[QueryGroup](/class/querygroup).Parse()
method.
RepoDb (v1.9.8-beta2)
- Fixed: Failing operations on a purposely quoted class property. Reported by Christian Franck.
RepoDb (v1.9.8-beta1)
- Requested: Document Enum Support #261
- Bug: Operations are failing on the Unorganized Table - by Christian Franck #262
RepoDb (v1.9.7)
- Stable release with complete feature sets.
- Added netstandard2.0 as the default target framework at Nuget Package.
RepoDb (v1.9.6)
- [Note] This version is the first ever version release with complete features. The next version will be only be bug-fixes from this version (if we found some).
- [Core] Optimize the Expression field iteration between the number of Class properties and DbDataReader columns. #136
- [Core] Add a pluggable interface/abstract for
DbProviderOperation
#158 - [Core] Add a
DbTransaction
object on InsertAll, MergeAll, UpdateAll operations. #213 - [Test] Added an Integration Tests for
IdentityClassWithDifferentIdentity
. - [Test] Add IntegrationTest for UpdateAll targeting certain columns. #245
- [Test] Add an
Async
method support toQueryMultipleExtractor.Extract
. #255 - [Test] Add an
Async
method support toQueryMultipleExtractor.Scalar
. #256 - [Test] Introduce UnitTest for IDbOperationProvider Interface. #253
- [Test] Create a test for
IStatementBuilder
for allAsync
operations forDbConnection
,DbRepository
,BaseRepository
. #218 - [Test] Add more extensive UnitTest for
IN
,NOT IN
,BETWEEN
,NOT BETWEEN
,LIKE
andNOT LIKE
operations. #186 - [Test] Create a much more extensive UnitTests for all Operations (
Equal
,NotEqual
,Between
… ) #178 - [Test] Create an extensive IntegrationTests for
IN
,NOT IN
,BETWEEN
,NOT BETWEEN
,LIKE
andNOT LIKE
operations. #180 - [Test] Create IntegrationTest for
DbTransaction
(Insert, Merge, Delete, Update) #181 - [Added] Introduce
SqlDbOperationProvider
Class. #251 - [Added] Introduce
DbOperationProviderMapper
Class. #252 - [Added] Introduce
IDbOperationProvider
Interface. #250 - [Adhoc] Add
BatchSize
in BulkInsert. #257 - [Adhoc] Remove all
obsolete
methods for v1.9.6. #246 - [Minor] Hide the exposed extended internal methods. #244
RepoDb (v1.9.5)
- [Note] This version is the first ever version release with complete features. The next version will be only be bug-fixes from this version (if we found some).
- [Core] Introduce
UpdateMultiple
, different from UpdateAll. #94 - [Core] Introduce the UpdateAll via
PrimaryKey
. #93 - [Core] Introduce
Query
andQueryAsync
Table-Based Calls #176 - [Core] Introduce
QueryAll
andQueryAllAsync
Table-Based Calls #221 - [Core] Introduce
BatchQuery
,BatchQueryAsync
Table-Based Calls #175 - [Core] Create an IL and Compiled Expressions for Update, Merge, Insert and InsertAll Parameter Passing #197
- [Core] Introduce the
InsertMultiple
, different from InsertAll. #92 - [Core] Add ExecutionContext Cache for Insert. #205
- [Core] Add ExecutionContext Cache for Merge. #206
- [Core] Add ExecutionContext Cache for Update. #208
- [Core] Add ExecutionContext Cache for UpdateAll. #209
- [Core] Add ExecutionContext Cache for MergeAll. #207
- [Core] Re-enable the operation for Updatevia
DataEntity
object. #188 - [Performance] Create a cached Expression when setting back the
PrimaryKey
values in Insert and InsertAll. #211 - [Test] Add extensive IntegrationTests for type CRUD via TableName Calls. #222
- [Test] Insert via TableName using Dynamic object with Invalid Column Casing #223
- [Test] Add more IntegrationTest for UpdateAll. #231
- [Test] Add UnitTest for MergeAll ITrace object. #240
- [Test] Added more extensive IntegrationTests for MergeAll operation. #242
- [Test] Add UnitTest for UpdateAll (
IStatementBuilder
, ITrace, QueryBuilder) #230 - [Test] Add
UnitTest
for InsertAll. #214 - [Bug] The version 1.9.2 is an (untagged) pre-release version. The Id property is failing on Insert if the Data Type is not long #215
- [Bug] Insert via TableName using Dynamic object with Invalid Column Casing #223
- [Bug] [Core] Insert is failing for non-null (non-table) properties (XJNEN) #212
- [Bug] DbHelper: Script execution security related issue in the company (XJNEN) #229
- [Bug] Expression based using the
ToList().Contains()
is failing. But theToArray().Contains()
is working. XJNEN #233 - [Known-Bug] Error is thrown when calling the UpdateAll with dynamic entities (and the fields are not equals to the DB fields) and the
qualifiers
were not defined. #232 - [Adhoc] Call the
AsList()
method when calling the[QueryGroup](/class/querygroup).GetString()
method. Support the case of XJNEN #228 - [Adhoc] Reviewed
BaseRepository
,DbRepository
,DbConnection
Async/Await Keywords - [Adhoc] Reviewed UnitTests for the ITrace (
BaseRepository
,DbRepository
,DbConnection
) - [Adhoc] Convert all Mappers to become a Resolvers by implementing the IResolver interface. #227
- [Adhoc] Remove all MapItem Classes from the Mappers. #226
- [Removed] TypeMapItem Class
- [Removed] DbIdentityCache Class
RepoDb (v1.9.4)
- [Note] This version is the first ever version release with complete features. The next version will be only be bug-fixes from this version (if we found some).
- [Core] Introduce
UpdateMultiple
, different from UpdateAll. #94 - [Core] Introduce the UpdateAll via
PrimaryKey
. #93 - [Core] Introduce
Query
andQueryAsync
Table-Based Calls #176 - [Core] Introduce
QueryAll
andQueryAllAsync
Table-Based Calls #221 - [Core] Introduce
BatchQuery
,BatchQueryAsync
Table-Based Calls #175 - [Core] Create an IL and Compiled Expressions for Update, Merge, Insert and InsertAll Parameter Passing #197
- [Core] Introduce the
InsertMultiple
, different from InsertAll. #92 - [Core] Add ExecutionContext Cache for Insert. #205
- [Core] Add ExecutionContext Cache for Merge. #206
- [Core] Add ExecutionContext Cache for Update. #208
- [Core] Add ExecutionContext Cache for UpdateAll. #209
- [Core] Add ExecutionContext Cache for MergeAll. #207
- [Core] Re-enable the operation for Update via
DataEntity
object. #188 - [Performance] Create a cached Expression when setting back the
PrimaryKey
values in Insert and InsertAll. #211 - [Test] Add extensive IntegrationTests for type CRUD via TableName Calls. #222
- [Test] Insert via TableName using Dynamic object with Invalid Column Casing #223
- [Test] Add more IntegrationTest for UpdateAll. #231
- [Test] Add UnitTest for MergeAll ITrace object. #240
- [Test] Added more extensive IntegrationTests for MergeAll operation. #242
- [Test] Add UnitTest for UpdateAll (
IStatementBuilder
, ITrace, QueryBuilder) #230 - [Test] Add
UnitTest
for InsertAll. #214 - [Bug] The version 1.9.2 is an (untagged) pre-release version. The Id property is failing on Insert if the Data Type is not long #215
- [Bug] Insert via TableName using Dynamic object with Invalid Column Casing #223
- [Bug] [Core] Insert is failing for non-null (non-table) properties (XJNEN) #212
- [Bug] DbHelper: Script execution security related issue in the company (XJNEN) #229
- [Bug] Expression based using the
ToList().Contains()
is failing. But theToArray().Contains()
is working. XJNEN #233 - [Adhoc] Call the
AsList()
method when calling the[QueryGroup](/class/querygroup).GetString()
method. Support the case of XJNEN #228 - [Adhoc] Reviewed
BaseRepository
,DbRepository
,DbConnection
Async/Await Keywords - [Adhoc] Reviewed UnitTests for the ITrace (
BaseRepository
,DbRepository
,DbConnection
) - [Adhoc] Convert all Mappers to become a Resolvers by implementing the IResolver interface. #227
- [Adhoc] Remove all
MapItem
Classes from the Mappers. #226 - [Removed]
TypeMapItem
Class - [Removed]
DbIdentityCache
Class
RepoDb (v1.9.3)
- [Core] Introduce ExecutionContext to hold the caching of the execution for InsertAll. #204
- [Enhancement, Performance] InsertAll Compiled Expressions
- [Enhancement] Revisits the
DbField
forPrimary
and Identity Columns. #182 - [Enhancement] Add the
IdentityDbField
in both Merge and Update SqlStatementBuilder. #198 - [Enhancement] Rename the
DataReaderConverter
toDataReader
. #200 - [Enhancement] Add Flush method in the
CommandTextCache
, and exposed the class. #220 - [Performance] Create a cached Expression when setting back the
PrimaryKey
values in Insert and InsertAll. #211 - [Performance] Use the compiled function for inserting single
DataEntity
if the BatchSize is 1 for InsertAll. #217 - [Fixed] Remove the Insert and InsertAll identity conversion from SQL. #203 - Fixed by introducing the
ConversionResolver
classes. - [Test] Create UnitTests for (
DbConnection
,DbRepository
,BaseRepository
) InsertAll operation forIStatementBuilder
. #216 - [Test] Add UnitTests for ClientTypeToSqlDbTypeResolver, SqlDbTypeNameToClientTypeResolver and SqlDbTypeToStringNameResolver #219
- [Added]
IConversionResolver
- [Added]
ClientTypeToSqlDbTypeResolver
- [Added]
SqlDbTypeNameToClientTypeResolver
- [Added]
SqlDbTypeToStringNameResolver
- [Added]
SqlVariant
- [Added]
ParameterField
- [Added]
InsertExecutionContext
- [Added]
InsertExecutionContextCache
- [Added]
InsertAllExecutionContext
- [Added]
InsertAllExecutionContextCache
RepoDb (v1.9.2)
- [Core] Introduce the InsertAll, different from
InsertMultiple
. #91 - [Core] Return the number of affected rows during BulkInsert for DbDataReader. #192
- [Core] Add a
SetParameters
extended methods forDbCommand
object. #196 - [Core, Requested] Re-enable the operation for Deletevia
DataEntity
object. #185 - [Core, Requested] Re-enable the operation for Updatevia
DataEntity
object. #188 - [Core, Requested] Add support to exclude non-table Class Properties in all Operations. #189
- [Adhoc, Requested] Expose the
DataEntityDataReader
Class. #172 - [Adhoc, Requested] Expose the
[QueryGroup](/class/querygroup).Fix()
method. #179 - [Adhoc] Revisit the
async Task
in allDbRepository
methods. #190 - [Adhoc] Add a new repository method named
‘
EnsureOpenAsync’
. #111 - [Test] Add an extensive IntegrationTests for the Entity with Extra Fields. #183
- [Test] Add all UnitTests for
Trace
call for allAsync
operations. #193 - [Test] Add UnitTest for InsertAll. #194
- [Test] Add IntegrationTests for InsertAll. #195
- [Test] Add more extensive UnitTest for
IN
,NOT IN
,BETWEEN
,NOT BETWEEN
,LIKE
andNOT LIKE
operations. #186 - [Test] Add extensive IntegrationTests for ConnectionPersistency. #191
- [Enhancement] Auto-set the
PrimaryField
value of the object after calling theInsert<T>
operation. #187
RepoDb (v1.9.1)
- Stable Release of RepoDb.
- [Update] Exposed BulkCopyOptions and Transaction to BulkInsert Operation.
RepoDb (v1.9.0)
- [Core] Introduced table-based operations for Count,
[CountAll](/operation/countall)
, Delete, DeleteAll, Insert, Merge,[Truncate](/operation/truncate)
and Update. - [Core] Introduced
[CountAll](/operation/countall)
and QueryAll operations. - [Core] Introduced pluggable interface
DbHelpers
. - [Core] Updated the
QueryBuilder
to remove theTEntity
at class level (moved it to method level). - [Core] Updated the
StatementBuilder
SQL Text generation via TableName. - [Core] Supported
Dynamic
, ExpandoObject, IDictionary<string, object>, QueryField,IEnumerable<QueryField>
and[QueryGroup](/class/querygroup)
objects in theExecute<Method>
calls. - [Added]
ExecuteScalar<T>
andExecuteScalarAsync<T>
- [Added]
DbField
- [Added]
DbFieldCache
- [Removed]
AsyncResultExtractor
- [Removed]
StatementBuilderMapItem
- [Removed]
FieldDefinition
- [Removed]
FieldDefinitionCache
- [Renamed]
SqlHelper
toSqlDbHelper
- [Renamed]
PrimaryKeyCache
toPrimaryCache
. - [Renamed]
PrimaryKeyIdentityCache
toPrimaryIdentityCache
- [Optimization] CountAsync operation is now returning the
Task<int>
type instead ofTask<object>
. - [Optimization] Allow passing of cache expiration time during Query and QueryAll calls.
- [Optimization, Pull-Request] Enumerations
Order
,Conjunction
andOperation
is now a pre-generated int values. - Introduced complete sets of IntegrationTests and UnitTests in all of the changes mentioned above.
- See v1.9.0-beta1 and v1.9.0-beta2 for complete set of changes.
RepoDb (v1.9.0-beta2)
- [Core] Make the
DbHelper
Pluggable by Provider. #137 - [Core] [NTH]: Support
InlineDelete(string tableName, object where ...)
#113 – Moved to Delete - [Core] Add table based operations for Count, Delete, DeleteAll, Insert, Merge, Truncate, Update. #159
- [Core] Organize the ordering of the arguments in all operations. #160
- [Core] Introduce CountAll operation. #161
- [Enhancement] Revisits the NET Framework custom method for GetCustomAttributes
. [#133](https://github.com/mikependon/RepoDb/issues/133) - [Enhancement] Support passing of QueryGroup, QueryField, IEnumerable
in the Execution Operations [#140](https://github.com/mikependon/RepoDb/issues/140) - [Enhancement] Remove the
StatementBuilderMapItem
class if possible. #139 - [Enhancement] Remove the
Provider
Enumeration. #138 - [Enhancement] Reorder the parameter of for target table to BulkInsert(TableName, DbDataReader). #145
- [Enhancement] Properly parse the type of the passed parameters when parsing the RawSql Array Parameters. #147
- [Enhancement] [NTH]: Support InlineInsert(string tableName, object param …) #114 – Moved to Insert
- [Enhancement] Implement the
prefix
as a passable argument when during conversion. #148 - [Enhancement] Add additional argument in the DataReaderConverter.ToEnumerable
method to support the calls to DbHelper.Get method. [#142](https://github.com/mikependon/RepoDb/issues/142) - [Enhancement] Add a caching mechanism for type Field objects. #157
- [Enhancement] Merge all inline operations into main operations (InlineMerge should be Merge). #156
- [Adhoc] Created a new cache class named
DbIdentityCache
. - [Adhoc] Renamed the
FieldDefinition
intoDbField
. - [Adhoc] Renamed the
FieldDefinitionCache
toDbFieldCache
. - [Adhoc] Renamed the
SqlHelper
toSqlDbHelper
. - [Adhoc] Renamed the
PrimaryKeyCache
toPrimaryCache
. - [Adhoc] Renamed the
PrimaryKeyIdentityCache
toPrimaryIdentityCache
. - [Adhoc] Moved the
DbHelpers
intoRepoDb.
DbHelpers`. - [Adhoc, Optimization] Made the
DbFieldCache
object more dynamic to any DB providers. - [Test] Add additional logic in the Integration Tests of the
IStatementBuilder
, verify that the second call is not hitting the method. #141 - [Test] Add an extensive Unit/Integration Test for InlineInsert that targets a table name. #146
- [Test] Create UnitTests for CountAll. #163
- [Test] Add separate
IntegrationTests
for the RawSql ArrayValues #168 - [Test] Add separate
IntegrationTests
for different Executeparameters. [#169](https://github.com/mikependon/RepoDb/issues/169) - [Test] Create IntegrationTests for QueryAll. #167
- [Test] Create IntegrationTests for CountAll. #164
- [Documentation] Document the CountAll operation. #162
- [Documentation] Add a separate documentation entry for Execute
with Array parameters argument. [#143](https://github.com/mikependon/RepoDb/issues/143)
RepoDb (v1.9.0-beta1)
- [New] Updated the description to “A dynamic, lightweight, efficient and very fast Hybrid ORM library for .NET.”.
- [New] Re-instate the row deletion by entity level (connection.Delete
(T entity)) [#112](https://github.com/mikependon/RepoDb/issues/112) - [Bug]
Query
using Expression is failing forContains()
==false
#102 - [Test] Create an Integration Tests for a model with much columns that the result of the ExecuteQuery #103
- [Test] Add Integration Tests for Execute
with IDictionary and ExpandoObject parameters. [#123](https://github.com/mikependon/RepoDb/issues/123) - [Test] Add an intensive UnitTests for Cache ExpirationInMinutes in the
DbConnection
,DbRepository
andBaseRepository
. #129 - [Test] Add major Integration Tests for Caching for SqlConnection,
DbRepository
,BaseRepository
. #130 - [Test] Add IntegrationTests for Insert<TEntity, TResult> and InlineInsert<TEntity, TResult> #132
- [Enhancement, Major] Remove the TEntity in QueryBuilder, implement it like this QueryBuilder (instead of QueryBuilder
) [#115](https://github.com/mikependon/RepoDb/issues/115) - [Enhancement, Major] Remove the AsyncResultExtractor class. #124
- [Enhancement] Short datatype used for Enums #107
- [Enhancement] Remove the internal StringConstants class. #117
- [Enhancement] Make the
CountAsync
operation return typelong
instead ofobject
without affecting the parallelism. #108 - [Enhancement] Add a new operational method ExecuteScalar
(and ExecuteScalarAsync ). [#121](https://github.com/mikependon/RepoDb/issues/121) - [Enhancement] Support passing of IDictionary<string, object> as
param
in the Executeoperation. [#125](https://github.com/mikependon/RepoDb/issues/125) - [Enhancement] Allow passing of cache expiration time during creation and in the repository. #128
RepoDb (v1.8.4)
- Stable Spring Release of RepoDb. Enjoy!
RepoDb (v1.8.3)
- Stable Spring Release of RepoDb. Enjoy!
RepoDb (v1.8.2)
Updates
- Updated to again support the
BatchQuery
dynamic expression (first-level properties). - Updated to again support the Count dynamic expression (first-level properties).
- Updated to again support the
whereOrPrimaryKey
argument rather thanprimaryKey
(first-level properties).
Added
- Additional Integration Tests for class/object mappings (CRUD).
- Additional Integration Tests for the
Dynamics
andExpressions
query expression forDbConnection
,DbRepository
andBaseRepository
.
RepoDb (v1.8.1)
New Features
- New: Introduced the ExecuteQueryMultiple into the
DbRepository
. - New: Introduced the
QueryMultiple
into theDbRepository
. - New: Introduced the
ConversionType
to let the users decide the type of the conversions. Accessible viaTypeMapper.ConversionType
property.
Optimizations
- Optimization: Added a class-level checking when identifying the
PrimaryKey
of a class. - Optimization: Supported the type conversions(if convertible) when querying the data from the database.
- Optimization: Simplified the extraction of the result of the ExecuteQueryMultiple via
Extract()
method.
Added
- Added: A class named
AsyncResultExtractor
to control the extraction of the result in the caller side for allAsync
methods of the ``BaseRepository/DbRepository
. - Added: A class named
QueryMultipleRequest
to handle the request when calling theQueryMultiple
operation. - Added: A class named
CommandArrayParameter
to hold the array parameters for Raw SQL statements. - Added: A method named
Reset
for both QueryField and[QueryGroup](/class/querygroup)
objects allow the user to reinstate the instance of that object. - Added: An operation named BulkInsert at
DbRepository
with DbDataReader as the parameter. - Added: An argument named
hints
for both theBatchQuery
and Count operation. - Added: An intensive
IntegrationTests
for all the different data types of the database (SQL Server) (Numbers, Spatials, Strings, Dates, Bytes, Others). - Added: An intensive
IntegrationTests
for the data types conversions(i.e: String-to-Numbers (vice versa), String-to-Dates (vice versa), etc). - Added: An intensive
IntegrationTests
for the invalid casings. - Added: An intensive
IntegrationTests
for all the operations of theDbConnection
,DbRepository
andBaseRepository
objects.
Fixes
- Fixed: An issue in the
InlineMerge
if the primary key is not defined in the dynamic object. - Fixed: An issue in the Merge if the primary key is an identity.
- Fixed: An issue in the
QueryMultiple
if the same expression is are used multiple times.
RepoDb (v1.8.1-beta1)
New Features
- Introduced the ExecuteQueryMultiple into the
DbRepository
. - Introduced the
QueryMultiple
into theDbRepository
. - Introduced the
ConversionType
to let the users decide the strictness of the conversions. Accesible viaTypeMapper.ConversionType
property.
Added
- In the
Async
methods, introduced theAsyncResultExtractor
class to control the extraction of the result in the caller side. - Supported BulkInsert for
DbRepository
with DbDataReader as the parameter. - Added an
IntegrationTests
for all the different data types of the database (SQL Server) (Numbers, Spatials, Strings, Dates, Bytes, Others). - Added an
IntegrationTests
for the data types conversions(i.e: String-to-Numbers (vice versa), String-to-Dates (vice versa), etc). - Added an
IntegrationTests
for the invalid casings.
Optimizations
- Added a class-level checking when identifying the
PrimaryKey
of a class. - Supported the type conversions(if convertible) when querying the data from the database.
Todo for 1.8.1
- Complete sets of
IntegrationTests
forDbConnection
,DbRepository
,BaseRepository
operations. - The version 1.8.1 will be the highest production-grade release of the library.
RepoDb (v1.8.0)
New Features
- Introduced the support for
DbConnection.QueryMultiple
. - Introduced the support for
DbConnection.ExecuteQueryMultiple
.
Added
- Added a class QueryMultipleExtractor to manage the extraction of the result of
DbConnection.ExecuteQueryMultiple
operation. - Added a class named
CommandParameter
to handle the value of the parameter mapping into the target Type. - Added a class named
QueryGroupTimeMap
to support the mapping of the QueryGroup into the Type. - Introduced a
hints
argument in theDbConnection.Query
operation. - Added class
SqlTableHints
. - Supported BulkInsert for DbDataReader.
Removed
- Removed the
Operation.Any
. - Removed the
Operation.All
. - Removed the
orderBy
andtop
argument in the Query method withprimaryKey
argument. - Removed the
DbConnection.BatchQuery
method withprimaryKey
argument. - Removed the
DbConnection.Count
method withprimaryKey
argument. - Removed the
DbConnection.Delete
method without the WHERE parameter. - Removed the support on
dynamic
object query tree expressions.
Discontinued
- Removed the attribute
Command
. - Removed the attribute
Ignored
.
Optimizations
- Revisits the way on how to map the
[QueryGroup](/class/querygroup)
list of QueryField into the data entity type. - Refactor the Linq (IEnumerable
.ToList()) into an old-school (foreach / for (var i..)) approach.
RepoDb (v1.8.0-beta5)
- (Major Update) Introduced the support for
DbConnection.QueryMultiple
. - (Major Update) Introduced the support for
DbConnection.ExecuteQueryMultiple
. - Added class QueryMultipleExtractor.
RepoDb (v1.8.0-beta4)
- Introduced a
hints
argument in theDbConnection.Query
operation. - Added class
SqlTableHints
.
RepoDb (v1.8.0-beta3)
- Supported BulkInsert for DbDataReader.
- Removed the
Operation.Any
. - Removed the
Operation.All
.
RepoDb (v1.8.0-beta2)
- Removed the
orderBy
andtop
argument in the Query method withprimaryKey
argument. - Removed the
DbConnection.BatchQuery
method withprimaryKey
argument. - Removed the
DbConnection.Count
method withprimaryKey
argument. - Removed the
DbConnection.Delete
method without the WHERE parameter.
RepoDb (v1.8.0-beta1)
- Remove the support on dynamic query tree expresssions.
- Removed the Command enumeration.
- Removed the Ignored attribute.
RepoDb (v1.7.0)
Async
Method Calls Optimizations- Expression-Based Queries
- Removed Support for Recursive Query
- Initial Support for Different Database Providers
RepoDb (v1.7.0-beta5)
- Fixed the invalid binaries deployed at v1.7.0-beta4.
- Modified
async
operations implementation to leverage the awaitable features. - Exposed the
IsForProvider
andGetProvider
DbConnection
extended methods. - Introduced a
BulkInsertMapItem
object to provide ability to override the BulkInsert operation default mappings. - Removed the recursive query features (DataEntity, DataEntityChildItemData, DataEntityChildListData, RecursionManager, ForeignAttribute).
RepoDb (v1.7.0-beta4)
- Modified
async
operations implementation to leverage the awaitable features. - Exposed the
IsForProvider
andGetProvider
DbConnection
extended methods. - Introduced a
BulkInsertMapItem
object to provide ability to override the BulkInsert operation default mappings. - Removed the recursive query features (DataEntity, DataEntityChildItemData, DataEntityChildListData, RecursionManager, ForeignAttribute).
RepoDb (v1.7.0-beta3)
- Fixed Target Framework Referencing Issues of NuGet Package
- Added a new enumeration for data providers.
- Updated the statement builder mapper to use the Provider object instead of
DbConnection
type.
RepoDb (v1.7.0-beta2)
- Introduced Expression-Based
Query
for Connection and Repository Operations - Introduced Support to All (as
Operation.Al
l), Any (asOperation.Any
), Contains (asOperation.Like
,Operation.NotLike
,Operation.In
, Operation.NotIn`) - Introduced an Expression-Based
qualifer
field for Merge andInlineMerge
operation - Unit Test updates for
All
,Any
, andContains
operation
RepoDb (v1.7.0-beta1)
- Introduced Expression-Based
Query
for Connection and Repository Operations - Introduced Expression-Based Parsing for QueryGroup, QueryField, Field, OrderField
- Introduced Array-Based Parameters when calling
ExecuteScalar
- Removed Support for
DataEntityMapper
(Multiple Mapping) - Bug Fixes: https://github.com/RepoDb/RepoDb/issues?q=is:issue+is:closed
RepoDb (v1.6.4)
- Performance: Introduced the field definitions for NULL checks at IL. #48
- Performance: Added a compiled-functions (Expression) when converting the DataReader to Entity. FransBouma Recommendation #47
RepoDb (v1.6.2)
- Performance: Introduced the field definitions for NULL checks at IL. #48
- Performance: Added a compiled-functions (Expression) when converting the DataReader to Entity. FransBouma Recommendation #47
RepoDb (v1.6.0)
- Performance: Introduced the field definitions for NULL checks at IL. #48
- Performance: Added a compiled-functions (Expression) when converting the DataReader to Entity. FransBouma Recommendation #47
RepoDb (v1.5.3)
- Optimization: This release has an extreme performance improvement. This is an update at v1.5.2.
- Bug: Fixed the packages.config dependencies issues.
RepoDb (v1.5.2)
- Performance Optimization: This release has an extreme performance improvement.
RepoDb (v1.5.0)
- Performance Optimization: This release has an extreme performance improvement.
RepoDb (v1.3.5)
- Refactor: Removed the
DataEntity
base class (request from the community) - Performance: Added a mechanism to cache the command texts
- Bug Fix: Exception is thrown at
Repository.Query
whencacheKey
is present - Bug Fix: Incorrect milliseconds is being saved for nullable System.DateTime properties
RepoDb (v1.3.0)
- Refactor: Removed
DataEntity
- requested from the community - Performance: Cached the command texts
- Bug Fix: Exception is thrown at
Repository.Query
whencacheKey
is present - Bug Fix: Incorrect milliseconds is being saved for nullable System.DateTime properties
RepoDb (v1.2.0)
- Stable Release (v1.2.0)
RepoDb (v1.2.0-beta5)
- Stabilization: Enabled the recursive query, recursion depth and cyclomatic stack overflow complexity features.
RepoDb (v1.2.0-beta4)
- Stabilization: Enabled the Recursive
Query
feature.
RepoDb (v1.2.0-beta3)
- Stabilizing: Added additional validator for query expressions.
- Stabilizing: Enabling the NULL values for Field when composing a query expression.
RepoDb (v1.2.0-beta2)
- Stabilizing: Enabled the (Field.Name = (object)null)
- Stabilizing: Enabled the Repository.Query if
PrimaryKey
is not Present
RepoDb (v1.2.0-beta1)
- Beta Release 1
RepoDb (v1.1.11)
- Supported multi-targeted framework (net40, netstandard1.3, netcore1.1)
RepoDb (v1.1.10)
- Candidate for Beta Release
RepoDb (v1.1.10-beta1)
- Supported multi-targeted framework (net40, netstandard1.3, netcore1.1)
- Beta release 1 for v1.2.0
RepoDb (v1.1.9)
- Introduced the IDbConnection Extended Operational Methods.
- Optimized the
DbRepository
to use the IDbConnection Extended Operational Methods. - Removes the
DbRepository
property atBaseRepository
class. - Made the
DbRepository
andBaseRepository
Disposable. - Introduced quoting on Fields and Tables when composing SQL statements (via SqlDbStatementBuilder).
- Documented the ConnectionPersistency, DeleteAll, InlineInsert, InlineMerge, InlineUpdate and Truncate operations.
RepoDb (v1.1.8)
Updates for v1.1.7 and v1.1.8
- Supported identity primary key field identification from the database.
- Fixed the parallelism issues by removing the unnecessary cache classes from the library.
- Created a customized DataReader object for the BulkInsert operation, for future support for the .Net Core.
- Introduced the repository Truncate operation.
- Supported the inline operations for Insert, Merge and Update.
- Added ConnectionPersistency capability for the repositories.
- Built on a lower target framework 4.0 for earlier compatibility.
- Next release is to support the .Net Core.
RepoDb (v1.1.7)
- Supported identity primary key field identification from the database.
- Fixed the parallelism issues by removing the unnecessary cache classes from the library.
- Created a customized DataReader object for the BulkInsert operation, for future support for the .Net Core.
- Introduced the repository Truncate operation.
- Supported the inline operations for Insert, Merge and Update.
- Added ConnectionPersistency capability for the repositories.
- Built on a lower target framework 4.0 for earlier compatibility.
- Next release is to support the .Net Core.
RepoDb (v1.1.6)
- Supported identity primary key field identification from the database.
- Fixed the parallelism issues by removing the unnecessary cache objects from the library.
- Created a customized DataReader object for the BulkInsert operation to support the .Net Core.
- Introduced the Truncate operation.
- Supported the inline operations for Insert, Merge and Update.
- Built on a lower target framework 4.0 for earlier compatibility.
- Next release is to support the .Net Core.
RepoDb (v1.1.5)
- Built on a lower target framework 4.0 for earlier compatibility.
- Solution clean-up, removed interfaces that is not unnecessary for extensions.
- Updated the caching by adding the expiration feature in the CacheItem.
- Support identity primary field identification from the database.
- Next release is to support the .Net Core.
RepoDb (v1.1.4)
- Built on a lower target framework 4.0 for earlier compatibility.
- Solution clean-up, removed interfaces that is not unnecessary for extensions.
- Updated the caching by adding the expiration feature in the CacheItem.
- Next release is to support the .Net Core.
RepoDb (v1.1.3)
- Built on a target framework 4.0 for earlier compatibility
- Renamed CacheItem.Timestamp to CacheItem.CreatedDate
- Added CacheItem.IsExpired method
- Added CacheItem.Expiration property
- Removed ICacheItem
- Removed ITraceLog
- Removed ICancellableTraceLog
- Removed ITypeMap
- Removed IStatementBuilderMap
- Removed IQueryGroup
- Removed IQueryField
- Removed IParameter
- Removed IField
- Removed IOrderField
- Removed IDataEntityMap
- Removed IQueryBuilder
- Removed IDbRepository
- Removed IBaseRepository
RepoDb (v1.1.2)
- Built on a target framework 4.0 for earlier compatibility
- Renamed CacheItem.Timestamp to CacheItem.CreatedDate
- Added CacheItem.IsExpired method
- Added CacheItem.Expiration property
- Removed ICacheItem
- Removed ITraceLog
- Removed ICancellableTraceLog
- Removed ITypeMap
- Removed IStatementBuilderMap
- Removed IQueryGroup
- Removed IQueryField
- Removed IParameter
- Removed IField
- Removed IOrderField
- Removed IDataEntityMap
RepoDb (v1.1.1)
- Version 1.1.0
RepoDb (v1.1.0)
- Version 1.1.0
RepoDb (v1.0.20)
- Version 1.0.20
RepoDb (v1.0.19)
- Version 1.0.19
RepoDb (v1.0.18-beta01)
Updates
- Supported the
DbConnection
.ExecuteQuerymethod, to return the `IEnumerable` list of RepoDb.Interfaces.IDataEntity. - IL Emit the conversion of System.Data.DbDataReader to System.Dynamic.DynamicObject when calling the
DbConnection
.ExecuteQuery method.
RepoDb (v1.0.17-alpha3)
Updates
- Created a RepoDb.Reflection.ObjectConverter.
- Supported the
DbConnection
.ExecuteQuerymethod, to return the `IEnumerable` list of RepoDb.Interfaces.IDataEntity.
Notes
- Next version will be the Beta version of the library.
RepoDb (v1.0.17-alpha02)
Updates
- Created a RepoDb.Reflection.ObjectConverter.
- Supported the
DbConnection
.ExecuteQuerymethod, to return the `IEnumerable` list of RepoDb.Interfaces.IDataEntity.
Notes
- Next version will be the Alpha version of the library.
RepoDb (v1.0.16)
Updates
- Created a RepoDb.Reflection.ObjectConverter.
- Supported the
DbConnection
.ExecuteQuerymethod, to return the `IEnumerable` list of RepoDb.Interfaces.IDataEntity.
Notes
- Next version will be the Alpha version of the library.
RepoDb (v1.0.16-alpha-01)
Updates
- Created a RepoDb.Reflection.ObjectConverter.
- Supported the
DbConnection
.ExecuteQuerymethod, to return the `IEnumerable` list of RepoDb.Interfaces.IDataEntity.
Notes
- Next version will be the Alpha version of the library.
RepoDb (v1.0.15)
- Added RepoDb.Reflection.Delegates.DataReaderToEntityMapperDelegate
- Added RepoDb.Reflection.ConstructorInfoCache
- Added RepoDb.Reflection.DataReaderConverter
- Added RepoDb.Reflection.DelegateCache
- Added RepoDb.Reflection.DelegateFactory
- Added RepoDb.Reflection.MethodInfoCache
- Added RepoDb.Reflection.MethodInfoTypes
- Added RepoDb.Reflection.ReflectionFactory
- Added RepoDb.Reflection.TypeArrayCache
- Added RepoDb.Reflection.TypeCache
- Added RepoDb.Reflection.TypeTypes
- Added RepoDb.Attributes.CreateMethodInfoAttribute
- Returned IDataReader object when using the IDbConnection.ExecuteReader
- Fixed the IL Emitter when mapping DataReader to Null properties
- Added
ExecuteQuery
to IDbConnection extension - Added BeforeExecuteQuery and AfterExecuteQuery trace methods
- Supported DataEntityMapper, DataEntityMap
- Supported the
DbRepository
.Count andDbRepository
.CountBig operations - Support Multi-Mapping for Class-Level
RepoDb (v1.0.14)
- Reflection (IL Emitting)
RepoDb (v1.0.13)
- Reflection (IL Emitting)
RepoDb (v1.0.12)
- Same as RepoDb (v1.0.11)
RepoDb (v1.0.11)
Updates
- Same as RepoDb (v1.0.10)
Fixes
- Issue 2:
Operation.In
Exception is Thrown for Array Values - Issue 1: Class Entity
Map
AttributePrimaryKey
Identification
RepoDb (v1.0.10)
Updates
- Support Column-Based Update using Dynamics (new Repository.InlineUpdate operation)
- Supported
BatchQuery
Operation - Supported Field-Level Mappings
- Added the currently used IQueryBuilder on the
IStatementBuilder
methods - Added QueryBuilderCache object
- Added ExecutionTime (Timespan) property in the TraceLog class
- Added CommandTypeCache object
- Cached the CommadType on every calls
- Removed the Create, Drop, Alter, Execute Command Enum Values (until being supported)
- Added ClassMapNameCache object
- Cache
Map
.Name on every calls - Added PropertyCache object
- Supported Entity Property Caching
- Added PrimaryPropertyCache object
- Supported Entity
Primary
Property Caching - Added ClassMapCache object
- Cached the
Map
attribute on every calls
Fixes
- Issue 2:
Operation.In
Exception is Thrown for Array Values - Issue 1: Class Entity
Map
AttributePrimaryKey
Identification
RepoDb (v1.0.9)
- Renamed
ICache.Has
toICache.Contains
- Removed
ICache.GetAll
and implement theIEnumerable
interface instead - Optimized the mapping for SqlBulkCopy for BulkInsert
RepoDb (v1.0.8)
- Fix the bug found when injecting the
IStatementBuilder
at theBaseRepository
. - Renamed argument name
orderFields
toorderBy
. - Renamed
ExecuteReaderEx
to ExecuteReader under Connection object. - Added
Remove()
on the ICache - Renamed ICache
Set()
method toAdd()
- Renamed
DbCacheItem
toCacheItem
- Remove the
sealed
keyword atCacheItem
to make it inheritable
RepoDb (v1.0.7)
Updates
- Support dynamic query objects for QueryGroup
- MemoryCache (ICache) object
Trace
(ITrace) object- Added Constant class
- Added support for Operation.Like and Operation.NotLike
- Allow Querying, Deleting, Updating by
PrimaryKey
(when the value is passed in the method of WHERE argument) - Support of Operation.Between and Operation.NotBetween
- Support
Operation.In
and Operation.NotIn - Optimized Statement Builder (SqlDbStatementBuilder)
- Injectable Statement Builder
- Support TOP and ORDER BY
- Order.Ascending and Order.Descending
- Support StatementBuilderMapper, IStatementBuilderMapper, StatementBuilderMap, StatementBuilderMap
- Support ORDER BY parsing of the dynamic objects
- Added support for the new Operation.Any and Operation.All
Removed
- EventNotifier class has been obsolete by the
Trace
class
RepoDb (v1.0.6)
Updates
- Support dynamic query objects for QueryGroup
- MemoryCache (ICache) object
Trace
(ITrace) object- Added Constant class
- Added support for Operation.Like and Operation.NotLike
- Allow Querying, Deleting, Updating by
PrimaryKey
(when the value is passed in the method of WHERE argument) - Support of Operation.Between and Operation.NotBetween
- Support
Operation.In
and Operation.NotIn - Optimized Statement Builder (SqlDbStatementBuilder)
- Injectable Statement Builder
- Support TOP and ORDER BY
- Order.Ascending and Order.Descending
- Support StatementBuilderMapper, IStatementBuilderMapper, StatementBuilderMap, StatementBuilderMap
- Support ORDER BY parsing of the dynamic objects
- Added support for the new Operation.Any and Operation.All
Removed
- EventNotifier class has been obsolete by the
Trace
class
RepoDb (v1.0.5)
Updates
- EntityNotBulkInsertableException supported when calling BulkInsert with non SqlConnection connection object
- BulkInsert optimization - ordering the columns based on the DB Table ordering (not on
DataEntity
properties ordering) - Initial implementation for complex query (QueryGroup)
- Added QueryGroup (IQueryGroup)
- Added Conjuctions for QueryGroup(s)
- Added OrQueryGroup
- Added AndQueryGroup
- Supported IFieldValue interface for QueryField - to support the QueryGroup parameterized approach
- Renamed QueryField.Value to QueryField.Parameter (with Name and Value properties) and change its Type from object to IParameter
- In QueryFields, if the Operation is
=
and the parameter Value is equals to NULL then we compose ([Field] IS NULL) string statement - Solves the problem of: WHERE (SomeDate IS NULL)
- We also did the same thing for != (SomeDate IS NOT NULL)
- Used the
<>
instead of!=
in InEquality comparer - Supported EventNotifier (Tracing and Debugging purposes).
- You can listen on the following events to see the Statement and Object passed before DB executions
- BeforeQueryExecution
- AfterQueryExecution
- BeforeUpdateExecution
- AfterUpdateExecution
- BeforeDeleteExecution
- AfterDeleteExecution
- BeforeMergeExecution
- AfterMergeExecution
- BeforeInsertExecution
- AfterInsertExecution
- BeforeBulkInsertExecution
- AfterBulkInsertExecution
- BeforeExecuteNonQueryExecution
- AfterExecuteNonQueryExecution
- BeforeExecuteReaderExecution
- AfterExecuteReaderExecution
- BeforeExecuteScalarExecution
- AfterExecuteScalarExecution
- CancelledExecution
RepoDb (v1.0.4)
- Bug Fix: Error when converting the SqlDataReader data back to the class object when the value is DBNull.Value
- Minor code optimizations and refactoring
RepoDb (v1.0.3)
- Bug Fix: Error when converting the SqlDataReader data back to the class object when the value is DBNull.Value
- Minor code optimizations and refactoring
RepoDb (v1.0.2)
- Converting DataReader to Object
Async
Calls (Task.Factory.StartNew)- Added support to auto find (Id) property as prospected
PrimaryKey
if the [Primary] attribute is not on place
RepoDb (v1.0.1)
- Initial Release for RepoDb (.Net Extension)
- Supported Dynamic
DbConnection
- Supported Mapping Command Type (Entity Level)
- Supported ExecuteScalar, ExecuteNonQuery, ExecuteReader (DataEntity and ExpandoObject)
- Supported
Primary
Attribute (IsIdentity) - Supported
BaseRepository
that uses the functionality of theDbRepository
- Supported the GetSqlStatement (Entity Level)
- Supported Object Driven approach when doing a query, delete, update and merge
- Supported Merge Method (Entity Level only)
- Supported Bulk Insert (SqlBulkCopy only)
- Supported to get the Connection at all Repositories
- Supported Transaction Handlers
- Supported
Async
methods - Supported
DbRepository
property at theBaseRepository
- Supported Dynamic object returns for ExecuteReaderEx
- Supported code-guards at the
DbRepository
(Queryable, Insertable, Deletable, Mergeable, Updateable) - Supported Type Mapper
RepoDb (v1.0.0)
- Initial Release for RepoDb (.Net Extension)
- Supported Dynamic
DbConnection
- Supported Mapping Command Type (Entity Level)
- Supported Execute Scalar
- Supported
Primary
Attribute (IsIdentity) - Supported
BaseRepository
that uses the functionality of theDbRepository
- Supported the GetSqlStatement (Entity Level)
- Supported Object Driven approach when doing a query, delete, update and merge
- Supported Merge Method (Entity Level only)
- Supported Bulk Insert (SqlBulkCopy only)
- Supported to get the Connection at all Repositories
- Supported Transaction Handlers
- Supported
Async
methods - Supported
DbRepository
property at theBaseRepository
- Supported Dynamic object returns for ExecuteReaderEx
- Supported code-guards at the
DbRepository
(Queryable, Insertable, Deletable, Mergeable, Updateable) - Supported Type Mapper