All Versions
Latest Version
Avg Release Cycle
115 days
Latest Release
1258 days ago

Changelog History
Page 1

  • v3.4.0 Changes

    December 07, 2020

    πŸ— #365 Rework GetByKeyList to not require a table name Command Builders
    πŸ“‡ #378 SQL Server: SqlServerEffectiveSettings? m_ServerDefaultSettings should be inherited Data Source Metadata SQL Server
    #382 Can't exec sql server system procedures like sp_sequence_get_range SQL Server
    πŸ— #366 Missing InsertBatch overload Command Builders
    πŸ— #376 MySQL: Approximate count for a table Command Builders MySQL
    πŸ— #287 Approximate count in PostgreSQL Command Builders Enhancement PostgreSQL
    πŸ— #246 Approximate distinct count in SQL Server Command Builders Enhancement SQL Server

  • v3.3 Changes

    February 11, 2020

    πŸ”‹ Features

    0️⃣ #357 Missing default for SoftDeleteRule Audit Rules
    #354 CreateOpenDataSource should have a no-parameter overload Data Source
    #353 ITransactionalDataSource Should Implement IOpenDataSource Data Source
    πŸ— #348 Support the TableAndViewAttribute Command Builders
    #347 CompiledMaterializers need ToObjectOrNull Materializers and Appenders
    #346 ToObjectOrNull should always use AllowEmptyResults Materializers and Appenders
    πŸ— #345 DeleteWithFilter needs to be reworked to not need explicit table names Command Builders
    πŸ— #344 DeleteByKey needs to be reworked to not need explicit table names Command Builders
    πŸ— #343 GetByKey should NOT call GetByKeyList Command Builders
    πŸ— #342 GetByKey needs to be reworked to not need explicit table names Command Builders

  • v3.2.1-PostgreSQL Changes

    February 07, 2020

    πŸ› Bug Fix

    • #355: PostgreSQL Server_Version Fails
  • v3.2 Changes

    January 31, 2020

    Tortuga Chain v3.2

    πŸ”‹ Features

    • πŸ‘ Differentiate between .ToObject and .ToObjectOrNull #323: Better support for C# 8 and nullable reference types
    • From<TObject> Improvements #330: Reduce the places where you have to specify both a table name and an object type
    • πŸ‘» DeleteOptions.CheckRowsAffected #329: Optionally throw an exception when deleting a row fails because the row doesn’t exist.
    • 🚚 SortExpression should be a struct, not a class #331: Removes a small memory allocation. F
    • πŸ‘ Allow sort expressions to have β€œDESC” suffix.
    • βž• Add WithNotifications to PostgreSQL Bulk Insert Bulk-Insert Command Builders PostgreSQL
      #324: Allows progress tracking for long bulk inserts
    • βž• Add WithNotifications to MySQL Bulk Insert Bulk-Insert Command Builders MySQL
      #325: Allows progress tracking for long bulk inserts
    • πŸ”„ Change SQL Server to use the same notification class as other bulk inserts
    • βž• Added ability to abort to PostgreSQL and MySQL bulk inserts. (This is separate from triggering a cancellation token.)
    • All of the ToXxxList materializers need ToXxxOrNullList variants Materializers and Appenders
      #334: This lets you read back a List<T?> where T is a value type or string.

    πŸ› Bugs

    • πŸ“š UpdateOptions.IgnoreRowsAffected Documentation is Wrong Documentation
    • πŸ›  Fix bug in MySQL Bulk insert

    Known Issues

    • OleDB drivers are not fully working in .NET Core. They do work in .NET Framework.
    • βœ… SQLDependency doesn’t work when using Microsoft.Data.SqlClient in .NET Framework while using MSTest. This does work fine if you use .NET Core OR run the test from the command line. Bug was filed with MS.

    πŸ“¦ Packages

  • v3.1 Changes

    December 24, 2019

    Chain 3.1 focuses on batch and bulk insert options for SQL Server, PostgreSQL, MySQL, and SQLite.
    πŸ‘ β€’ Batch inserts use a normal INSERT statement with multiple rows being inserted atomically. The number of rows in one batch is limited by the max number of parameters supported by the database.
    β€’ Multi-batch performs a series of batch inserts. Each sub-batch is atomic, but the operation as a whole is not unless a transaction is used.
    🐎 β€’ Bulk inserts use the database-specific alternative. This usually offers the best performance, but as limitations such as in inability to return newly created keys.

    πŸ”‹ Features

    • Partial Object Loads #286: Only load specific properties OR exclude specific properties from being loaded
    • βž• Add Max Parameters to Metadata #297: This is used by batch inserts to ensure we don’t use too many properties in a single statement
    • βž• Add ValueNonNullLink appender
    • Core functionality for batch and multi-batch inserts #303
    • Batch insert for SQL Server #299: Single-statement and multi-statement batch inserts in SQL Server without the need for a table parameter.
    • Batch insert for SQLite #235: Single-statement and multi-statement batch inserts for SQLite
    • Batch insert for PostgreSQL #300: Single-statement and multi-statement batch inserts for PostgreSQL
    • Batch Insert for MySQL #308: Single-statement and multi-statement batch inserts for MySQL
    • Bulk Insert for MySQL #229
    • Bulk Insert for PostgreSQL #232
    • WithUser should accept nulls #317: This makes it easier for scenarios where the 'user' object is null because the user isn’t logged in.

    πŸ› Bugs

    • πŸ› Bug in NonNullLink #301: Stack overflow in the NonNullLink appender.

    πŸ“¦ Packages


  • v3.0 Changes

    November 01, 2019
    • ⬆️ Upgrade to C# 8 and nullable reference types.
    • Redesigned the project layout.
    • πŸ‘Œ Support for Microsoft.Data.SqlClient (MDS) as an alternative for System.Data.SqlClient
    • Tortuga.Chain.SqlServer.OleDb is no longer dependent on Tortuga.Chain.SqlServer
    • 🚚 Moved OleDB and ODBC datasources from Tortuga.Chain.Core to their own libraries

    πŸ’₯ Breaking Changes

    • You can only use one of the Tortuga.Chain.SqlServer variants in a single project.
    • πŸ”§ [DB]DataSource.CreateFromConfig is no longer available, as it assumed a specific configuration manager.

    πŸ“¦ Packages

    • Tortuga.Chain.Core.3.0.7223.40476
    • Tortuga.Chain.Core.Odbc.3.0.7223.40605
    • Tortuga.Chain.Core.OleDb.3.0.7223.40607
    • Tortuga.Chain.SqlServer.3.0.7223.40609
    • Tortuga.Chain.SqlServer.OleDb.3.0.7223.40658
    • Tortuga.Chain.SqlServer.MDS.3.0.7223.42438
    • Tortuga.Chain.Access.3.0.7225.1361
    • Tortuga.Chain.Core.3.0.7226.35389
    • Tortuga.Chain.MySql.3.0.7226.35445
    • Tortuga.Chain.Core.3.0.7226.39852
    • Tortuga.Chain.PostgreSql.3.0.7227.25792
    • Tortuga.Chain.SQLite.3.0.7227.38228
    • Tortuga.Chain.CompiledMaterializers.3.0.7228.18237
  • v2.2 Changes

    October 13, 2019
    • πŸ‘ #120 Add support for length, precision, and scale for columns in PostgreSQL
    • πŸ“‡ #127 Add indexes to SQL Server's Metadata Drydock SQL Server
    • πŸ“‡ #128 Add indexes to PostgreSQL's Metadata
    • πŸ“‡ #129 Add indexes to SQLite's Metadata
    • πŸ“‡ #130 Add indexes to Access's Metadata Access Drydock
    • πŸ—„ #251 License URL deprecation
    • πŸ— #259 Upsert, matching on an alternate key Command Builders
    • πŸ“‡ #264 DatabaseMetadata.GetTableOrView throws an exception if the table is missing Metadata
    • πŸ“‡ #266 SQLIte Data types Metadata SQLite
    • πŸ“‡ #272 Add indexes for MySQL Drydock Metadata MySQL
    • 0️⃣ #274 Enable Foreign Keys in SQLite by default

    πŸ’₯ Breaking Change

    • Now requires .NET 4.6.1 or higher. Previously 4.6 was permitted, but that was not compatible with code analysis tools. (Also, no one should be on 4.6 anymore.)
  • v2.0 Changes

    January 07, 2019
    • πŸ— #233 Build scripts for MySQL MySQL
    • #205 SQL Server: Need reliable way to get the database name
    • #222 Make methods on IRootDataSource public
    • #227 Expose Connection/Transaction properties on IOpenDataSource classes
    • #247 SqlDependency in .NET Standard
    • πŸ‘€ #243 Strict mode seems to be ignoring NotMapped during creates bug
    • 🐎 #211 IsDBNull and Performance
    • #110 Create stubs for MySql MySQL
    • #20 Create data source for MySQL MySQL enhancement
    • πŸ“‡ #7 Create Metadata Provider for MySQL MySQL enhancement
    • πŸ— #13 Create From command builder (a.k.a. FromTableOrView) for MySQL MySQL enhancement
    • πŸ— #10 Create raw sql command builder for MySQL MySQL enhancement
  • v1.3 Changes

    October 01, 2018

    πŸ›  Dependency refresh and minor bug fixes in PostgreSQL + Compiled Materializers.

  • v1.0.6145.981 Changes

    October 28, 2016

    βž• Adds support for connecting to SQL Server via OleDB.

    βž• Adds support for .NET Standard 1.3. (Note that OleDB is not compatible with .NET Standard.)