У нас есть несколько старых таблиц с устаревшими схемами, с которыми нам трудно работать.
Можно ли использовать NHibernate для преобразования некоторых из этих данных в более привлекательную модель?
ДляНапример, у нас может быть целочисленный столбец состояния, который мы хотим разбить на несколько свойств.
Legacy status: 0 - Active, 1 - Inactive, 2 - TemporarilyInactive, 3 - etc
Нам бы хотелось иметь что-то вроде:
bool IsActive { get; set; }
Status Status { get; set; }
(где Status
является перечислением)
Я знаю, что мы можем использовать поле protected
, которое может принять состояние, а затем определить получатели для дополнительных свойств, чтобы вернуть соответствующее значение на основе поля поддержки, но яЯ уверен, что это отключит возможность запроса на основе этих свойств.
Тем не менее, мы не сможем выполнять запросы, такие как .Query(p => p.IsActive)
, и переводить их в SQL, такие как where status = 0
, верно?
Единственный ли путь через кастом IUserTypes
?Если да, то есть ли какая-нибудь вспомогательная среда, облегчающая работу с IUserType
для достижения этой цели?
Как другие люди справляются с этим?