EFCore: Невозможно привести тип базы данных tstzrange к NpgsqlRange`1. - PullRequest
0 голосов
/ 22 марта 2019

У меня есть конфигурация DbContext, такая как

protected override void OnConfiguring(DbContextOptionsBuilder b)
{
    if (b.IsConfigured)
        return; // Breakpoint not reached, sure.

    b.UseNpgsql(GetDefaultConnectionString(), opts =>
    {
        opts.MapRange<DateTimeOffset>("tstzrange");
    });
}

И пример класса:

public class BlockedUser
{
    // ...
    public NpgsqlRange<DateTimeOffset> BlockedPeriod { get; set; }
}

Это позволяет мне применить миграцию базы данных при создании таблицы BlockedUser (включая свойство tstzrange), но когда я пытаюсь получить данные из этой таблицы, NpgsqlDefaultDataReader.cs выдает следующее исключение: InvalidCastException: Can't cast database type tstzrange to NpgsqlRange`1

var user = await _dbContext.BlockedUsers
    .FirstOrDefaultAsync(x => x.UserId == userId
        && x.BlockedPeriod.Contains(pointDate));

Что не так?

Дополнительная информация: Convert Infinity DateTime=True

...