Skip to main content

Getting started

Follow these simple steps to integrate TimescaleDB with your Entity Framework Core application using the CmdScale.EntityFrameworkCore.TimescaleDB NuGet packages.

You may also want to checkout the eample projects in the repository.


Getting Started Steps​

Step 1: Install NuGet Packages​

Description: Add the required packages to your project. These packages provide the core runtime integration and design-time support for EF Core tooling and migrations.

Code:

dotnet add package CmdScale.EntityFrameworkCore.TimescaleDB
dotnet add package CmdScale.EntityFrameworkCore.TimescaleDB.Design

Step 2: Configure DbContext​

Description: Enable TimescaleDB support in your DbContext configuration with a single line of code by chaining the .UseTimescaleDb() method onto your PostgreSQL provider configuration.

Code:

string? connectionString = builder.Configuration.GetConnectionString("Timescale");

builder.Services.AddDbContext<TimescaleContext>(options =>
options.UseNpgsql(connectionString).UseTimescaleDb());

Step 3: Define Your Models​

Description: Use familiar EF Core patterns to define hypertables using Data Annotations or the Fluent API. The example below uses the [Hypertable] and [PrimaryKey] attributes.

Code:

[Hypertable(nameof(Time), ChunkSkipColumns = new[] { "Time" }, ChunkTimeInterval = "86400000")]
[PrimaryKey(nameof(Id), nameof(Time))]
public class DeviceReading
{
public Guid Id { get; set; }
public DateTime Time { get; set; }
public string DeviceId { get; set; } = string.Empty;
public double Voltage { get; set; }
public double Power { get; set; }
}