Domanda

Sto imparando a usare NHibernate validatore ed è perfetto API (Loquace).

ho notato è che non riesco a impostare una proprietà intero o proprietà int nullable (int?) Di non essere annullabile. Beh, perché no?

In un database, una colonna integer può avere valori nulli. Peggio ancora, quando ho generare DDL utilizzando SchemaExport, la colonna integer Non sarà raccogliendo che non nullabity (a meno che non lo esprimo nelle mappature NHibernate).

È stato utile?

Soluzione

Se si specifica usando i validatori ValidatorDef<>, questo rilevati dai l'esportazione dello schema, e otterrai i definizioni appropriate SQL, ad esempio:

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

I risultati in

create table Invoices (
   ...
   Description NVARCHAR2(255) not null,
   ...
)

Altri suggerimenti

È già dato la risposta. Il validatore non è scandito da esportazione dello schema. Devi usare la mappatura.

NHibernate Validator trova sulla cima di NHibernate. Esso viene utilizzato per convalidare le entità contro mappature NHibernate e le regole personalizzate. Per la configurazione delle proprietà dei campi, come ad esempio se sono annullabili, questo viene fatto nelle mappature NHibernate, poiché colpisce non solo le convalide fatto, ma anche le istruzioni SQL generate.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top