diff --git a/src/GreenHome.Infrastructure/Data/GreenHomeDbContext.cs b/src/GreenHome.Infrastructure/Data/GreenHomeDbContext.cs index 577dfe6..6be7ed8 100644 --- a/src/GreenHome.Infrastructure/Data/GreenHomeDbContext.cs +++ b/src/GreenHome.Infrastructure/Data/GreenHomeDbContext.cs @@ -38,6 +38,21 @@ public sealed class GreenHomeDbContext : DbContext { base.OnModelCreating(modelBuilder); + // Postgres: map DateTime -> "timestamp without time zone" (not timestamptz). + // Mirrors SQL Server's naive datetime2 — accepts any DateTime.Kind, so values + // copied from SQL Server (Kind=Unspecified) or written by the API won't crash. + if (Database.ProviderName == "Npgsql.EntityFrameworkCore.PostgreSQL") + { + foreach (var et in modelBuilder.Model.GetEntityTypes()) + { + foreach (var p in et.GetProperties()) + { + if (p.ClrType == typeof(DateTime) || p.ClrType == typeof(DateTime?)) + p.SetColumnType("timestamp"); + } + } + } + modelBuilder.Entity(b => { b.ToTable("Devices");