Как прочитать тип TPH из sproc в EF6?

#entity-framework-6 #mapping #tph

#entity-framework-6 #сопоставление #tph

Вопрос:

ObjectContext.Translate<T> не обрабатывает типы TPH для T . Есть ли способ легко прочитать типы TPH из sproc в EF6? Предположим, что вся запись таблицы (вместе со столбцом дискриминатора) прочитана, с добавлением или изменением чего-то вроде «select *» для удобства обслуживания в столбцах.

Я действительно пытаюсь избежать создания пользовательского монолитного типа, который имеет все свойства в таблице для чтения записи, а затем включить дискриминатор, чтобы вручную создавать и сопоставлять подтипы вручную. Это кажется огромным упущением в методе Translate.

Например, даже в EF Core, похоже, предпринимаются попытки воспроизвести метод Translate, но я не уверен, что реплицируемая логика обрабатывает типы TPH: https://github.com/aspnet/EntityFrameworkCore/issues/8127#issuecomment-330973013 Существует также реализация «Materialize»:https://github.com/aspnet/EntityFrameworkCore/issues/8127#issuecomment-440011796 Предполагая, что любой из них поддерживает TPH, я ищу аналогичную реализацию для EF6, чтобы заменить метод Translate.

Комментарии:

1. Можно ли это вообще сделать в EF Core, или у него еще хуже поддержка этой базовой функции сопоставления?

2. Может быть, я смогу переопределить материализатор.