Nhibernate - сопоставление таблицы с одной строкой - PullRequest
1 голос
/ 23 марта 2011

У меня есть существующее веб-приложение nhibernate, и я собираюсь добавить таблицу конфигурации, которая будет содержать все параметры конфигурации всей системы.Эта таблица всегда будет содержать одну и только одну строку.Каждый столбец будет содержать одно свойство конфигурации.Я планирую иметь объект домена, который будет иметь соответствующее свойство для каждого столбца в таблице.Пользователи смогут изменять значения для каждого свойства на экране администратора.Я планирую заполнить таблицу одной строкой во время установки, установив начальные значения для каждого параметра конфигурации.У меня следующие вопросы:

1) Я только хочу, чтобы система обновила существующую строку, и хочу заблокировать любые удаления или вставки в таблицу.Конечно, я могу обеспечить это, не создавая функции уровня приложения, которые действительно удаляют или обновляют, но мне было интересно, есть ли в NHibernate какие-то встроенные параметры сопоставления или конфигурации, чтобы помочь.Я бы предпочел не делать этого на уровне базы данных, поскольку мы пишем независимое от базы данных приложение, и до сих пор не было необходимости писать какой-либо код или сценарии, специфичные для платформы базы данных.

2) Будет лиотображение будет отличаться для этого класса от моих других "нормальных" классов?

1 Ответ

1 голос
/ 23 марта 2011

Ответ на 1) NHibernate не имеет никакой «конфигурации», которая позволит блокировать только «вставки» и «удаления».Вы можете обойти, например, написать свой собственный PreDeleteEventListener и PreInsertEventListener и остановить обновления и вставки, если объект является вашим объектом конфигурации.

Однако я бы посоветовал вам применить эту конфигурацию через приложение, т. Е. Хранилище конфигурации должно предоставлять только функцию «Обновление» и не более.

Ответ на 2) Я предполагаю, что эта таблицане имеет первичного ключа (так как это единственная строка в таблице). Насколько я знаю, NHibernate не может работать с объектами, которые не имеют первичных ключей. Возможно, вам придется добавить первичный ключ только для того, чтобы заставить его работатьдля NHibernate

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