Одно место в NHibernate и Sharp Architecture для указания длины поля для базы данных и проверки - PullRequest
1 голос
/ 28 марта 2011

Я строю новую систему с NHibernate, используя S # arp Architecture. Я новичок в S # arp, но опыт работы с NHibernate. Одна особенность, которую я действительно надеялся найти, - это хороший способ указать в одном месте длины текстовых полей, которые будут перенесены на каждый слой, который должен знать длину.

Другими словами, я использую отображение Fluent, чтобы указать, что поле Имя объекта Whatsis содержит 50 символов. (Я отключил автоматическое отображение, потому что я все еще писал переопределения отображений для большинства, если не для всех классов. Я решил просто написать полное отображение самостоятельно с помощью ClassMap. Мне нужно достаточно подробностей в отображении, чтобы сгенерировать из него полную схему БД. Затем, когда я генерирую схему базы данных, используя hbm2ddl, я получаю 50-символьную длину поля. Замечательно. Но я также хочу, чтобы валидаторы MVC применяли его автоматически. И я настолько жадный, что даже хочу, чтобы прокси-объект, сгенерированный NHibernate для Whatsis, знал об этой длине в своем установщике, поэтому, если в коде я должен назначить слишком длинное значение, я получу исключение.

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

1 Ответ

0 голосов
/ 31 марта 2011

Вам необходимо использовать NHibernate Validator , так как это единственная платформа валидатора, которую NHibernate hbm2ddl в настоящее время поддерживает. К сожалению, не похоже, чтобы кто-то связывал валидации NHibernate Validator и MVC3. Вот кто-то еще с этим проблемы:

MVC 3, валидаторы NHIbernate и интерполятор сообщений

Это должно быть возможно, поскольку в прошлом я использовал xVal (предшественник валидаторов MVC3) с атрибутами NHibernate Validator для валидации на стороне клиента, валидации на стороне сервера и генерации схемы. Кому-то просто нужно потратить немного TLC, чтобы NHibernate Validator прекрасно играл с валидаторами MVC3.

...