Автоматическое преобразование 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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