Ответ 1
Entity Framework не поддерживает TPH с интерфейсами (извините за указание очевидного). Возможно, это не решение, которое вы ищете, но я все еще собираюсь его поместить, потому что это единственное решение по состоянию на 16 апреля 2015 года.
В Entity Framework 6 самое близкое, что вы можете получить, - Использовать абстрактные классы вместо интерфейсов. Эта статья подробно рассказывает о TPH в EF.
Мое предложение состоит в том, что вы хотите использовать интерфейсы и поддерживать иерархию, а также по-прежнему хотите гладкое приведение типов, рассмотреть возможность использования automapper с абстрактными классами.. Таким образом, ваш пользовательский интерфейс будет по-прежнему использовать интерфейсы, но может быть сопоставлен с моделью домена с использованием профилей automapper. По крайней мере, пока не появится поддержка интерфейса. Это не будет быстрым, если приложение велико и имеет сотни доменных моделей, поэтому нужно планировать его с умом.
Если вы создаете его с нуля, вы можете просто использовать абстрактные классы из слоя пользовательского интерфейса в DAL без какого-либо повторного факторинга.