В .NET появилась пара типов DateOnly, TimeOnly, которые напрямую в DbDateReader не поддерживаются.
В том смысле, что в DbDateReader нет таких методов GetDateOnly, GetTimeOnly.
Но их можно поддерживать через виртуальный метод T GetFieldValue<T>(int ordinal).
В свете этой темы возник вопрос — как бы замутить такие специализации этого GetFieldValue<T>:
public override DateOnly GetFieldValue<DateOnly>(int ordinal)
{
//....
}
public override TimeOnly GetFieldValue<TimeOnly>(int ordinal)
{
//....
}
---
Я тут посмотрел, как такие вещи мутят
другие
| | Мутят они через if-ы |
| | public virtual T? GetFieldValue<T>(int ordinal)
{
if (IsDBNull(ordinal)
&& typeof(T).IsNullable())
{
return GetNull<T>(ordinal);
}
var type = typeof(T).UnwrapNullableType().UnwrapEnumType();
if (type == typeof(bool))
{
return (T)(object)GetBoolean(ordinal);
}
//....
|
| | |
---
Можно как-то извернуться и таки сделать желаемую специализацию?
-- Пользователи не приняли программу. Всех пришлось уничтожить. --