Table of Contents

10.0 Release Notes

Npgsql.EntityFrameworkCore.PostgreSQL version 10.0 is now in development, preview versions are available on nuget.org.

Support for PostgreSQL 8 virtual generated columns

Before PostgreSQL 18, generated (or "computed") columns could only be stored, meaning they were computed when a row is inserted or updated, and take up space on disk just like regular columns. PostgreSQL 18 introduced support for virtual generated columns, which are instead calculated when read, and take up no space on disk. Virtual columns can be defined with version 10 of the PostgreSQL provider as follows:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<Person>()
      .Property(p => p.DisplayName)
      .HasComputedColumnSql(@"""FirstName"" || ' ' || ""LastName""");
}

Note that previously, stored: true had to be specified in the above code sample; starting with version 10, omitting it causes a virtual generated column to be created (supported on PostgreSQL 18 only).

For more information, see the documentation.

Other new features

  • When the target PostgreSQL is version is set to 18 (.UseNpgsql("...", o => o.SetPostgresVersion(18, 0))), translate Guid.CreateVersion7() to the new uuidv7() function.
  • NodaTime LocalDate.At() and LocalDate.AtMidnight() are now translated.

See the 10.0.0 milestone for the full list of Npgsql EF provider issues.

Breaking changes

Contributors

To be completed.