Releases: cajuncoding/SqlBulkHelpers
Releases · cajuncoding/SqlBulkHelpers
Release v2.5.0
- Fix issues with SLQ Server non-writeable fields such as
ComputedColumns &PersistedColumns causing failures during Bulk Insert/Update operations. - Migrate from
FastMembertoFasterflectfor improved performance, reliability and functionality. - Implement support for Property Handler interceptors to enable advanced dynamic transformation of property values during Bulk Insert/Update operations.
- Add Support to intentionally ignore properties on data models (for edge cases) using
SqlBulkIgnoreAttribute(e.g.[SqlBulkIgnore]). - Add Support for property mapping/interception handling for dynamic conversions before writing to the DB via new
ISqlBulkHelpersPropertyConverterinterface that can be added to any custom Attribute (e.g. transform complex object properties toJsonto store in a single field).- Add Support for dynamic Json property conversion with new
SqlBulkConvertToJsonAttribute(e.g.[SqlBulkConvertToJson]) now provided out-of-the-box.
- Add Support for dynamic Json property conversion with new
- Improve compatibility with
RepoDbby implementing support for RepoDbPropertyHandlerinterceptors by dynamically detecting and using any registeredPropertyHandlers(Annotations on Properties) if already used on models.- Add compatibility support to utilize RepoDb
IPropertyHandlerandPropertyHandlerAttributefor conversions before writing to the DB.
- Add compatibility support to utilize RepoDb
Release v2.4.4
Release v2.4.3
Fix Caching bug for Processing Definitions loaded from class Attribute annotations, etc. whereby the FullName was not correctly used resulting in cache conflicts and incorrect values when classes have the same name.
Release v2.4.2
- Add Support to manually control if Materialized Loading tables are cleaned-up/removed when using
SchemaCopyMode.OutsideTransactionAvoidSchemaLocksviamaterializeDataContext.DisableMaterializedStagingTableCleanup().- Always enabled by default and throws an
InvalidOperationExceptionif ifSchemaCopyMode.InsideTransactionAllowSchemaLocksis used. - This provides support for advanced debugging and control flow support.
- Always enabled by default and throws an
- Improved SqlBulkHelpers Configuration API to now provide
Clone()andConfigure()methods to more easily copy/clone existing configuration and change values is specific instances; including copy/clone of the Defaults for unique execuctions.
Release v2.4.1
- Added support to load Table Schema for Temp Tables (basic Schema details needed for BulkInsert or Update, etc. to allow Bulk Loading Temp Tables!
- Improved Error message for when custom SQL Merge Match qualifiers are specified but DB Schema may have changed making them invalid or missing from Cached schema.
Release v2.4
- Added new explicit
CopyTableDataAsync()APIs which enable explicit copying of data between two tables on matching columns (automatically detected by column Name and Data Type). - Added new Materialized Data Configuration value
MaterializedDataLoadingTableDataCopyModeto control whether the materialized data process automatically copies data into the Loading Tables after cloning. This helps to greatly simplify new use cases where data must be merged (and preserved) during the materialization process.
Release v2.3.1
Fixed bug with Sql Bulk Insert/Update processing with Model Properties that have mapped database names via mapping attribute (e.g. [SqlBulkColumn("")], [Map("")], [Column("")], etc.).
Release v2.3
- Changed default behavior to no longer clone tables/schema inside a Transaction which creates a full Schema Lock -- as this greatly impacts Schema aware ORMs such as
SqlBulkHelpers,RepoDb, etc.- Note: If you are manually orchestrating your process using
StartMaterializedDataProcessAsync()andFinishMaterializeDataProcessAsync()then you now need to handle this by explicitly callingCleanupMaterializeDataProcessAsync()in aTry/Finally.
- Note: If you are manually orchestrating your process using
- Added new configuration value to control if Schema copying/cloning (for Loading Tables) is inside or outide the Transaction (e.g. SchemaCopyMode.InsideTransactionAllowSchemaLocks vs OutsideTransactionAvoidSchemaLocks).
- Fix bug in
ReSeedTableIdentityValueWithMaxIdAsync()when the Table is Empty so that it now defaults to value of 1.
Release v2.2.3
Improved namespace for SqlBulkHelpers.CustomExtensions to reduce risk of conflicts with similar existing extensions.
Release v2.2.1
Restored support for SqlConnection Factory (simplified now as a Func when manually using the SqlDbSchemaLoader to dynamically retrieve Table Schema definitions for performance.