BlueTusk.Extensions.TimescaleDB.EntityFrameworkCore
1.0.0
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
<PackageReference Include="BlueTusk.Extensions.TimescaleDB.EntityFrameworkCore" Version="1.0.0" />
<PackageVersion Include="BlueTusk.Extensions.TimescaleDB.EntityFrameworkCore" Version="1.0.0" />
<PackageReference Include="BlueTusk.Extensions.TimescaleDB.EntityFrameworkCore" />
paket add BlueTusk.Extensions.TimescaleDB.EntityFrameworkCore --version 1.0.0
#r "nuget: BlueTusk.Extensions.TimescaleDB.EntityFrameworkCore, 1.0.0"
#:package BlueTusk.Extensions.TimescaleDB.EntityFrameworkCore@1.0.0
#addin nuget:?package=BlueTusk.Extensions.TimescaleDB.EntityFrameworkCore&version=1.0.0
#tool nuget:?package=BlueTusk.Extensions.TimescaleDB.EntityFrameworkCore&version=1.0.0
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 | Versions 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. |
-
net10.0
- BlueTusk.EntityFrameworkCore (>= 1.0.0)
- BlueTusk.Extensions.TimescaleDB (>= 1.0.0)
- Microsoft.EntityFrameworkCore.Relational (>= 10.0.11)
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 |