EntityFramework Custom Association - PullRequest
       1

EntityFramework Custom Association

3 голосов
/ 14 декабря 2010

Хорошо, допустим, у меня есть пользовательская таблица, а затем таблица, в которую заносятся все попытки входа в систему (Id (счетчик), userId, время и, в случае успеха или нет)

Теперь в моей модели сущностей я хочу, чтобы это было 2 ассоциации, со временем всех успешных попыток и одной со всеми неудачными попытками, как я могу этого достичь?

Вот так выглядит модель сейчас!

alt text

1 Ответ

3 голосов
/ 14 декабря 2010

Хороший вопрос.:)

То, что вы по сути пытаетесь сделать, это иметь условие в вашем навигационном свойстве , например, как у вас есть условное отображение на вашем сущностей .

К сожалению, , навигационные свойства в концептуальной модели должны сопоставляться с внешними ключами в физической модели (базе данных).И FK не могут быть условными.

Что я хотел бы сделать , это использовать TPH на UserLoginHistory .

Создать две сущности - UserLoginHistorySuccess и UserLoginHistoryFail .

И используйте дикриминатор ( Success ) для сопоставления с одной UserLoginHistory таблицей.

Например:

  • UserLoginHistorySuccess - сопоставляется с UserLoginHistory при успехе = 1
  • UserLoginHistoryFail - сопоставляется с UserLoginHistory при успехе = 0

Таким образом, вы можете добавитьдва навигационных свойства в Пользователь , которые сопоставляются двум объектам.

Но вам все еще требуется только 1 фактическая таблица базы данных.

Подробнее о таблице на иерархию здесь .

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...