Skip to content

Releases: PawelGerr/Thinktecture.EntityFrameworkCore

10.2.0

18 Jun 06:26
f57a0ba

Choose a tag to compare

New features

  • Window function NTile — added the NTILE window function (EF.Functions.NTile(...)).
    Per-provider behavior: SQL Server requires an ORDER BY and returns bigint; PostgreSQL and
    SQLite return int and the ORDER BY is optional.
  • Static member translation in queries — static members (e.g. smart-enum values like
    Status.Published, constants) are now translated in supported query and bulk-operation value
    expressions.

Other

  • Added an AI assistant skill to the repository to aid contributors.

10.1.0

18 Jun 06:25
58c014d

Choose a tag to compare

New features

  • PostgreSQL provider — new Thinktecture.EntityFrameworkCore.PostgreSQL package (Npgsql),
    bringing bulk operations, temp tables, window functions, collection parameters, and nested
    transactions to PostgreSQL.
  • Bulk insert/update from queryDbSet<T>.BulkInsertAsync(sourceQuery, …) and
    DbSet<T>.BulkUpdateAsync(sourceQuery, …) on all providers. Inserts/updates rows directly from
    an IQueryable<TSource> server-side (INSERT INTO … SELECT … / UPDATE … FROM (…)), with a
    fluent Map/Set builder, optional filter, and table/schema overrides.

⚠️ Source-breaking API changes

These are consequences of the affected-row count now flowing through the bulk APIs:

  • IBulkInsertExecutor.BulkInsertAsync<T> now returns Task<int> (number of inserted rows)
    instead of Task. Custom implementations must update their signature.
  • TempTableQuery<T>'s 2-arg constructor was replaced by a 3-arg constructor
    TempTableQuery(IQueryable<T> query, ITempTableReference reference, int numberOfInsertedRows),
    backed by the new ITempTableQuery<T>.NumberOfInsertedRows. Callers that construct
    TempTableQuery<T> directly must pass the row count (e.g. the affected-row count of their own
    insert command).

10.0.2

22 Feb 10:51
270799a

Choose a tag to compare

  • [SQL Server] Delimit/escape column names when generating the CREATE PRIMARY KEY statement,
    fixing primary keys on columns whose names require quoting (#73).

10.1.0-beta02

20 Feb 10:09
630d9a4

Choose a tag to compare

10.1.0-beta02 Pre-release
Pre-release

Fixes

  • [PostgreSQL] Use NpgsqlSqlNullabilityProcessor to fix null-handling in generated SQL.

10.1.0-beta01

20 Feb 10:06
30ecf3b

Choose a tag to compare

10.1.0-beta01 Pre-release
Pre-release

New features

  • PostgreSQL provider (experimental) — initial Thinktecture.EntityFrameworkCore.PostgreSQL
    package (Npgsql).
  • Bulk insert/update from queryDbSet<T>.BulkInsertAsync(sourceQuery, …) and
    DbSet<T>.BulkUpdateAsync(sourceQuery, …), inserting/updating rows directly from an
    IQueryable<TSource> server-side.

⚠️ Source-breaking API changes

  • IBulkInsertExecutor.BulkInsertAsync<T> now returns Task<int> (number of inserted rows)
    instead of Task.
  • TempTableQuery<T>'s 2-arg constructor was replaced by a 3-arg constructor
    TempTableQuery(IQueryable<T> query, ITempTableReference reference, int numberOfInsertedRows),
    backed by the new ITempTableQuery<T>.NumberOfInsertedRows.

10.0.1

20 Feb 10:05
4dadfeb

Choose a tag to compare

  • Introduced the new Thinktecture.EntityFrameworkCore.Sqlite.Core package, splitting the SQLite
    foundation from the full SQLite package.

10.0.0

11 Nov 21:21
c6c8904

Choose a tag to compare

Upgraded to EF Core 10 / .NET 10.

⚠️ Breaking changes

  • Removed the LeftJoin extension method — EF Core now supports LeftJoin natively. Use the
    built-in method instead.

Other

  • [SQL Server] Temp tables and scalar collection parameters with decimal columns that have no
    precision/scale configured now default to decimal(38,18).

9.2.1

22 Jan 20:33
20e2993

Choose a tag to compare

  • Bugfix: SqlCommand must be associated with tx manually

9.2.0

06 Jan 16:05
0b90b81

Choose a tag to compare

  • Added overloads of BulkInsert*IntoTempTableAsync to insert into existing temp table.

8.4.0

06 Jan 16:04
10ebb55

Choose a tag to compare

  • Added overloads of BulkInsert*IntoTempTableAsync to insert into existing temp table.