1

Я научился использовать валидатор NHibernate, и это Fluent API (Loquacious).NHibernate Validator and Schema Вопрос об экспорте

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

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

ответ

0

Если указать валидаторы с помощью 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

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

0

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

Смежные вопросы