Автоматическое преобразование DateTimeOffset в UTC при запросе PostgreSQL с помощью EFCoreC#

Место общения программистов C#
Anonymous
Автоматическое преобразование DateTimeOffset в UTC при запросе PostgreSQL с помощью EFCore

Сообщение Anonymous »

У меня есть такая сущность:

Код: Выделить всё

public class Datum
{
public long Id { get; set; }
public DateTimeOffset TimeStamp { get; set; }
}
Когда я хочу запросить эту временную метку с помощью следующего кода:

Код: Выделить всё

var now = DateTimeOffset.Now;
var data = await Context.Data.Where(d => d.TimeStamp > now).ToListAsync();
Я получаю следующую ошибку:

Невозможно записать DateTimeOffset со смещением = 02:00:00 в тип PostgreSQL ' временная метка с часовым поясом», поддерживается только смещение 0 (UTC). Обратите внимание, что невозможно смешивать DateTimes с разными типами в массиве/диапазоне. См. переключатель AppContext Npgsql.EnableLegacyTimestampBehavior, чтобы включить устаревшее поведение.

То же самое происходит, когда я хочу добавить значения Datum таким образом:< /p>

Код: Выделить всё

var now = DateTimeOffset.Now;
Context.Data.Add(new Datum()
{
TimeStamp = now,
});

await Context.SaveChangesAsync();
Я знаю, что мог бы использовать DateTimeOffset.UtcNow, но мое реальное программное обеспечение немного сложнее, и я не хочу каждый раз конвертировать его вручную, например. now.UtcDateTime. Я просто хочу, чтобы EFCore автоматически преобразовывал каждый объект DateTimeOffset в объект по времени UTC, не делая этого вручную при каждом обновлении и запросе.


Подробнее здесь: https://stackoverflow.com/questions/761 ... ith-efcore

Вернуться в «C#»