Свободный NHibernate - отображение частей одной таблицы в несколько классов с несколькими общими полями - PullRequest
2 голосов
/ 16 февраля 2011

У меня есть ситуация, когда в таблице User содержится много информации о пользователе (имя, фамилия, адрес электронной почты и т. Д.) В дополнение к учетным данным (имя пользователя, пароль, предыдущие пароли и т. Д.).Обычно я бы отделил Аутентификацию от Персонализации, но эта таблица давно создана, и я не могу этого сделать.

Меня беспокоит наличие 1 пользовательского объекта со всеми этими данными, которые передаются вокруг моего приложения.Вместо этого я хочу разделить это на два объекта: User и UserCredentials.Пользователь может свободно передаваться по моему приложению, не пропуская ни одного пароля, в то время как UserCredentials будет использоваться только в моем сервисном бэкэнде для проверки и аутентификации пользователя.

Это кажется достаточно простым.Однако некоторые поля должны быть общими для обоих этих объектов.Будет ли это вызывать проблемы с nhibernate при обновлении одного из моих объектов?Например, если произошла смена имени пользователя и оба имеют имя пользователя в объекте, будут ли оба объекта обновлены?

1 Ответ

3 голосов
/ 16 февраля 2011

Если User и UserCredentials представляют два представления одного и того же объекта, не создает два класса для них. Это только приведет к боли.

Альтернативы:

  • Используйте компонент , чтобы открыть "публичную" часть сущности и передать ее
  • Используйте DTO, чтобы содержать именно те поля, которые вам нужны, и передайте это
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...