NHibernate Validator и вопрос экспорта схемы - PullRequest
1 голос
/ 17 сентября 2010

Я учусь использовать валидатор NHibernate и его Fluent API (Loquacious).

Я заметил, что я не могу установить целочисленное свойство или свойство nullable int (int?), Которые не могут быть обнуляемыми,Ну, а почему бы и нет?

В базе данных целочисленный столбец может иметь нулевые значения.Еще хуже, когда я генерирую DDL с использованием SchemaExport, целочисленный столбец не будет захватывать эту ненулевую (если я не выражу это в отображениях Nhibernate).

Ответы [ 3 ]

0 голосов
/ 22 сентября 2010

NHibernate Validator находится поверх NHibernate. Он используется для проверки сущностей на соответствие отображений NHibernate и пользовательских правил. Для настройки свойств полей, таких как обнуляемость, это делается в отображениях NHibernate, поскольку это влияет не только на выполненные проверки, но и на сгенерированные операторы SQL.

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

Если вы укажете валидаторы, используя ValidatorDef<>, это будет , обнаруженное при экспорте схемы, и вы получите соответствующие определения SQL, например:

public class InvoiceValidationDef : ValidationDef<Invoice>
{
   public InvoiceValidationDef()
   {
       ...
       Define(x => x.Description).NotNullable().And.MaxLength(255);
       ...
   }
}

Результаты в

create table Invoices (
   ...
   Description NVARCHAR2(255) not null,
   ...
)
0 голосов
/ 18 сентября 2010

Вы уже дали ответ.Валидатор не сканируется при экспорте схемы.Вы должны использовать отображение.

...