Способ использования NHibernate, чтобы легко получить пределы длины поля - PullRequest
2 голосов
/ 10 ноября 2010

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

Кто-нибудь знает, как это сделать?

Ответы [ 3 ]

2 голосов
/ 10 ноября 2010

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

Как уже сказал Питер, вы можете использовать NHibernate Validator , чтобы наложить ограничения на вашу модель. Однако вам все равно придется вручную изменить ограничения, если изменится базовая БД.

2 голосов
/ 11 ноября 2010

Используйте шаблон T4 для считывания длины из схемы таблицы и автоматической вставки в отображение или в валидатор NHibernate.

Это немного трудоемко, но если вы беспокоитесь о том, что администратор базы данных часто меняет схему, это путь.

В качестве альтернативы, если это слишком много работы, можно написать модульные тесты, которые сравнивают длину в схеме с длиной в отображении. Они сломаются, если администратор БД обновит схему, но отображение не будет обновлено должным образом. Затем, когда ваши модульные тесты прерываются, вы знаете, чтобы изменить код.

2 голосов
/ 10 ноября 2010

Посмотрите на NHibernate.Validator.

Эта система позволяет добавлять ограничения для ваших сущностей через атрибуты или XML. Эта информация затем может быть извлечена и использована в вашем интерфейсе.

Некоторые материалы для чтения:

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