Я знаю, что это старый вопрос, но нет, в Entity Framework (даже в последней версии 6) нет функции, позволяющей сопоставить свойство навигации с типом интерфейса.
Вы можете, однако, отобразить несколько свойств навигации с конкретными типами (и ограничение, которое может быть установлено только одно) и предоставить несопоставленное свойство вашего типа интерфейса, которое объединяет конкретные свойства навигации в одно свойство. К сожалению, это может сделать ваши запросы более сложными, потому что некоторые запросы должны будут знать, на какие конкретные навигационные свойства ссылаться (а вы не можете выполнять запросы к свойству не отображенного интерфейса).
Существует значительная сложность вокруг поддержки полиморфных навигационных свойств. Подумайте, что должно произойти, чтобы запросить исходное свойство AssignedTo
, если вы предполагаете, что оно сопоставлено с таким столбцом, как AssignedToId int
. Вы должны объединить или объединить наборы сущностей User
и Group
и надеяться, что данный AssignedToId
появится только в одном из них. Этот подход используется для отображения типов Table-Per-Concrete (TPC) , но он работает только с наследованием классов (не интерфейсов) и тщательным планированием для генерации различных идентификаторов для участвующих типов.