Каков наилучший способ сопоставления пола (пола) в NHibernate? - PullRequest
0 голосов
/ 26 марта 2011

Моей первой реализацией этого было использование полноценного класса сущностей для представления пола. Тогда у меня были бы отношения многие-к-одному, например Пациент к полу. Чем больше я на это смотрю, тем больше это мне не кажется правильным, поскольку пол - это то, что вряд ли скоро изменится. И поскольку я использую гребень Guid для отображения первичных ключей, довольно много места занято для внешнего ключа, и, глядя на необработанную таблицу базы данных, трудно понять, что представляет собой Guid. Итак, я хотел бы знать, как другие разработчики решают эту и подобные задачи (например, цвет). Это, безусловно, что-то, что используется довольно часто.

1 Ответ

4 голосов
/ 26 марта 2011

Поскольку они являются свойствами, которые редко изменяются (не будучи слишком политическими, есть только 2 человеческих пола), я отображаю их как enum.

public enum Genre
{     
    Unknown = 0,           
    Male    = 1,
    Female  = 2      
}

По умолчанию это сохранит строковое значение в базе данных (т. Е. "Неизвестно", "Мужской" или "Женский"), чтобы получить его для сохранения целочисленного значения (т. Е. 0, 1 или 2), Я отображаю это как:

Map(x => x.Genre).CustomType(typeof(Genre));

Иногда я считаю, что лучше сохранить строковое значение вместо целого числа, поэтому я соответствующим образом перетаскиваю два сопоставления.

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