Хороший вопрос.:)
То, что вы по сути пытаетесь сделать, это иметь условие в вашем навигационном свойстве , например, как у вас есть условное отображение на вашем сущностей .
К сожалению, , навигационные свойства в концептуальной модели должны сопоставляться с внешними ключами в физической модели (базе данных).И FK не могут быть условными.
Что я хотел бы сделать , это использовать TPH на UserLoginHistory .
Создать две сущности - UserLoginHistorySuccess и UserLoginHistoryFail .
И используйте дикриминатор ( Success ) для сопоставления с одной UserLoginHistory таблицей.
Например:
- UserLoginHistorySuccess - сопоставляется с UserLoginHistory при успехе = 1
- UserLoginHistoryFail - сопоставляется с UserLoginHistory при успехе = 0
Таким образом, вы можете добавитьдва навигационных свойства в Пользователь , которые сопоставляются двум объектам.
Но вам все еще требуется только 1 фактическая таблица базы данных.
Подробнее о таблице на иерархию здесь .
Удачи!