Итак, я добавил следующее в конструктор контекста
var dateTimeConverter = new ValueConverter<DateTime, DateTime>(
v => v, v => DateTime.SpecifyKind(v, DateTimeKind.Local));
foreach (var entityType in modelBuilder.Model.GetEntityTypes())
{
foreach (var property in entityType.GetProperties())
{
if (property.ClrType == typeof(DateTime) || property.ClrType == typeof(DateTime?))
property.SetValueConverter(dateTimeConverter);
}
}
И это преобразовало ввод в местное время.
Однако, Я обнаружил, что ввод был не тем, что я думал. Я действительно получал время ввода как UT C на стороне API. В клиентском приложении, через которое я отправляю данные в API, был установлен специальный сериализатор xml, который преобразовывал время в гггг-мм-ддтчммсс-stzd. Так что моя проблема была на стороне клиента, а не на стороне API.
Бонус: Мне говорят, что столбцы БД всегда должны быть UT C и в любом случае оставить его как есть. Это тот, кто превращает значения БД в отчет, чтобы преобразовать значения столбцов в местное время из UT C.