NHibernate: динамическое переключение модели одного домена между несколькими физическими моделями данных - PullRequest
0 голосов
/ 29 апреля 2010

В этой статье Айенде описывает, как сопоставить модель одного домена с несколькими физическими моделями данных. Можно ли расширить этот принцип так, чтобы отображение можно было выбирать динамически?

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

Одним из решений было бы представление объекта в его различных состояниях тремя отдельными классами: по одному для каждого отображения. Затем сущность может быть загружена, и для изменения ее состояния сущность может быть сопоставлена ​​с классом, представляющим одно из ее других состояний, а затем сохранена обратно в схему, используя другое сопоставление.

Мне было интересно, возможно ли вообще иметь один и тот же объект, представленный одним классом, который содержит флаг состояния (вроде как дискриминатор), и любое сохранение в схеме выберет соответствующее отображение на основе значения флаг статуса.

Надеюсь, это имело смысл!

Большое спасибо.

1 Ответ

0 голосов
/ 29 апреля 2010

Даже если бы это было возможно, ИМХО это не очень хорошая идея. Это в основном то же самое, что задано в этом вопросе , и я согласен с ответами, размещенными там. По сути, будьте проще и смоделируйте свои состояния в одном отображенном классе.

...