A. Solved by adding
AppContext.SetSwitch("Npgsql.EnableLegacyTimestampBehavior", true);
to the Startup Configure method.
B. Or in case you have no Startup class at all and all your initialization is inside Program.cs with a host builder then your file ending might look like:
... //adding services etc
var host = builder.Build();
AppContext.SetSwitch("Npgsql.EnableLegacyTimestampBehavior", true);
... //your other scoped code
await host.RunAsync();
To query database using System.Linq.Dynamic we need to specify time kind too.
Filter example:
$"User.BirthDate>={time.ToStringUtc()}"
public static string ToStringUtc(this DateTime time)
{
return $"DateTime({time.Ticks}, DateTimeKind.Utc)";
}
At the same time the answer https://stackoverflow.com/a/70142836/7149454 by @istvan-kardkovacs applies. Basically to add an .SetKindUtc() to every = new DateTime() you are creating.. The switch above didn’t obviously worked for me in a background hosted service that was populating database before any other code was executed.