У меня есть следующая схема базы данных:
Я использую наследование Table-per-Hiearchy (TPH). Поле «Тип» таблицы «Случаи» определяет, является ли регистр регистром электронной почты или Twitter Они оба являются отношением 1: N к таблице дел.
Я использую подход базы данных с EF, и вот модель, которую я хочу использовать:
Проблема в том, что я не могу отобразить свойства навигации в дочернюю таблицу, используя внешние ключи (Email.CaseId <-> Cases.Id и Tweets.CaseId <-> Cases.Id). Чего бы я хотел добиться, чтобы у сущности EmailCase было свойство навигации к электронным письмам, а у сущности TwitterCase - свойство для твитов.
Я могу заставить его работать, только если я добавлю ассоциацию, то навигация вручную, но, конечно, это не будет отражено в базе данных.
Как я могу решить эту проблему? Должен ли я использовать Таблицу за тип (TPT) вместо TPH? Но в этом случае, например, EmailCase будет содержать только идентификатор оригинального случая, ничего более странного для меня. (Это то, что было бы сгенерировано, если бы я использовал модель вначале).
Или мне следует добавить вручную связи и свойства навигации?