BlueTusk.Extensions.TimescaleDB.EntityFrameworkCore 1.0.0

There is a newer prerelease version of this package available.
See the version list below for details.
dotnet add package BlueTusk.Extensions.TimescaleDB.EntityFrameworkCore --version 1.0.0
                    
NuGet\Install-Package BlueTusk.Extensions.TimescaleDB.EntityFrameworkCore -Version 1.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="BlueTusk.Extensions.TimescaleDB.EntityFrameworkCore" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="BlueTusk.Extensions.TimescaleDB.EntityFrameworkCore" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="BlueTusk.Extensions.TimescaleDB.EntityFrameworkCore" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add BlueTusk.Extensions.TimescaleDB.EntityFrameworkCore --version 1.0.0
                    
#r "nuget: BlueTusk.Extensions.TimescaleDB.EntityFrameworkCore, 1.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package BlueTusk.Extensions.TimescaleDB.EntityFrameworkCore@1.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=BlueTusk.Extensions.TimescaleDB.EntityFrameworkCore&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=BlueTusk.Extensions.TimescaleDB.EntityFrameworkCore&version=1.0.0
                    
Install as a Cake Tool

BlueTusk.Extensions.TimescaleDB.EntityFrameworkCore

Stable TimescaleDB query and migration integration for BlueTusk Entity Framework Core. Register the feature on the long-lived data source and the query translators on the EF provider:

using BlueTusk.Data;
using BlueTusk.Extensions.TimescaleDB;
using Microsoft.EntityFrameworkCore;

await using var dataSource = new BlueTuskDataSourceBuilder(connectionString)
    .UseTimescaleDb()
    .Build();

var options = new DbContextOptionsBuilder<AppDbContext>()
    .UseBlueTusk(dataSource, provider => provider.UseTimescaleDb())
    .Options;

EF.Functions.TimeBucket translates interval buckets for DateTimeOffset, DateTime, and DateOnly, including offset/origin forms and the TimescaleDB timezone form for DateTimeOffset. Integer, bigint, and smallint buckets and offsets are also available. All functions are schema-qualified with the schema passed to UseTimescaleDb.

The package translates TimescaleDB's first, last, and histogram hyperfunctions as typed group aggregates. The normal LINQ sequence operators carry through to aggregate SQL, including ordering, Distinct(), and Where() as PostgreSQL ORDER BY, DISTINCT, and FILTER:

var width = new BlueTuskInterval(months: 0, days: 0, microseconds: 3_600_000_000);
var buckets = await context.Metrics
    .GroupBy(metric => EF.Functions.TimeBucket(width, metric.RecordedAt))
    .Select(group => new
    {
        group.Key,
        First = EF.Functions.TimescaleFirst(
            group.Select(metric => ValueTuple.Create(metric.Value, metric.RecordedAt))),
        Last = EF.Functions.TimescaleLast(
            group.Select(metric => ValueTuple.Create(metric.Value, metric.RecordedAt))),
        Histogram = EF.Functions.TimescaleHistogram(
            group.Select(metric => metric.Value), 0, 100, 10),
    })
    .ToListAsync();

Migrations can call EnsureTimescaleDb, ConvertToHypertable, and DropTimescaleDb. Identifiers and relation literals are quoted centrally; hypertable conversion is idempotent and does not migrate existing rows unless explicitly requested.

The live PostgreSQL 17/TimescaleDB 2.29 gate covers scalar and aggregate query execution, compiled queries, current Hypercore columnstore policies, approximate row counts, and continuous-aggregate refresh and policy lifecycle. These APIs use the stable 1.0.0 Provider-family contract.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.1.0-rc.1 88 8/29/2026
1.0.0 122 8/23/2026